zoukankan      html  css  js  c++  java
  • 桂电第一次程序设计 C STL 排序

    Problem 1197 # 共享厕所
    ediszhao添加于2017-12-22 15:00:56
    时间限制 : 1000MS 内存限制 : 65536KB
    ×提示 : 你已解决此题目。
    问题描述
    马路边有一个共享厕所,厕所里一共装有m 个马桶可供人们拉尿,每个人每秒钟的拉尿量相等,均为1。 现在有n 个人准备拉尿,他们的初始拉尿顺序已经确定。将这些人按拉尿顺序从1 到n编号,i 号同学的拉尿量为ai。拉尿开始时,1 到m 号人各占一个马桶,并同时开始拉尿。当其中某个人j 完成其拉尿量要求aj 后,下一名排队等候拉尿的人x马上接替j人的位置开始拉尿。这个换人的过程是瞬间完成的。即第j人第k秒结束时完成拉尿,则第x人第k+1 秒立刻开始拉尿。若当前拉尿人数n’不足m, 则只有n’个马桶供使用,其它m-n’个马桶关闭。 现在给出n 名人的拉尿量,按照上述拉尿规则,问所有人都拉完尿需要多少秒。

    输入
    第1 行是n 和m,分别表示拉尿人数和马桶个数。

    第2 行n 个整数a1、a2、……、an,ai 表示i 号同 学的拉尿量。

    输出
    输出结果表示拉尿所需的总时间,结果只占一行。

    输入范例
    5 3

    4 4 1 2 1

    8 4

    23 71 87 32 70 93 80 76

    输出范例
    4

    163

     1 //写这一题时,原考虑的选择先进先出的队列容器,按照题目模拟一下;
     2 // 当时不会队列;
     3 //思维的转变,先进先出,通过边输入边处理也能很好的解决; 
     4 #include<iostream>
     5 #include<cstdio>
     6 #include<algorithm>
     7 using namespace std ;
     8 int main ()
     9 {
    10     int n,m,a[10000];
    11     while(cin>>n>>m)
    12     {
    13         if(m>=n)
    14         {
    15             for(int i=0; i<n; i++)
    16                 cin>>a[i];
    17             sort(a,a+n);
    18             cout<<a[n]<<endl;
    19         }
    20 
    21         else
    22         {
    23             for(int i=0; i<m; i++)
    24                 cin>>a[i];
    25             sort(a,a+m);
    26             for(int i=0; i<n-m; i++)
    27             {
    28                 int t; cin>>t;
    29                 a[0]+=t;
    30                 sort(a,a+m);
    31             }
    32             cout<<a[m-1]<<endl;
    33         }
    34 
    35     }
    36     return 0;
    37 }
  • 相关阅读:
    编译 | 更新标准库_交叉编译工具链
    论文 | 图文_学科
    编码 | 二进制格式设计方案
    图片 | 图片上传管理
    进程 | 查询进程中包含多少线程
    第二周02:Fusion ICP逐帧融合
    exe文件当前目录搜索文件
    第一周:读取XML深度数据并将其重建为三维点云
    第二周:01 ICP迭代交互
    C++文件读写(转载)
  • 原文地址:https://www.cnblogs.com/Yokel062/p/10133650.html
Copyright © 2011-2022 走看看