题目描述
输入样例
5 3
4 4 1 2 1
输出样例
4
(暴力枚举)
blacktion
这个想法不是我想到的, 是我看到@blacktion 的代码后,发觉想法很妙, 写出来记录一下!
1、最初没人打水时(每个龙头都是空),读入一个打水时间, 将其排在第一个水龙头。
2、接下来,将当前水龙头上打水的时间从小到大排序。
3、再读入一个打水时间,将其加入到最少的那个水龙头。
4、输出所有水龙头中, 最大的那个(排序后,就是最后一个)。
备注 : 哪个水龙头结束的最快, 就将新来的加到哪个龙头下。
时间复杂度 $O(n^2logn)$
参考文献
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int n, m, t, d[1005];
int main()
{
cin >> n >> m;
for(int i = 1; i <= n; i++)
{
cin >> t;
d[1] += t;
sort(d + 1, d + m + 1);
}
cout << d[m] << endl;
return 0;
}