比赛的时候,用了sort排序,模拟,感觉应该不会超时,结果总是TLE,一直到结束,都没有想出什么好的算法。谁知道,这么几行代码就可以A掉的。
结果就是取最大值和平均值的向上取整的较大者。。。不理解
#include <iostream>
#include <math.h>
#include <algorithm>
#include <string.h>
#include <stdio.h>
#define Maxn 200005
using namespace std;
int main()
{
int t;
while(scanf("%d", &t) != EOF)
{
while(t--)
{
int sum = 0, ave;
int n, m;
scanf("%d%d", &n, &m);
int maxx = -0x3f3f3f3f;
for(int i = 0; i < n; i++)
{
int a;
scanf("%d", &a);
if(a > maxx) maxx = a;
sum += a;
}
ave = sum / m;
if(sum % m) ave++;
printf("%d\n", max(ave, maxx));
}
}
return 0;
}