首页 > 代码库 > XYNUOJ 1248 排队打水问题
XYNUOJ 1248 排队打水问题
题目描述
输入
4 2 ( n m )
2 6 4 5 (t1 t2 …… tn)
输出
23(所有人的花费时间总和)
样例输入
4 2
2 6 4 5
样例输出
23
总是出现运行错误,思路很正确,不过还好终于过啦
//AC
#include <stdio.h>
#include<algorithm>
using namespace std;
int cmp(int a, int b)
{
return a < b;
}
int main()
{
int n, m, i, sum = 0;
int a[1000], b[1000]; //总时间=每个人打水所用时间加等待时间
scanf("%d %d", &n, &m);
for(i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
sort(a,a+n);
for(i = 0; i < m; i++) // 前m-1个水龙头 每个人等待的时间为0
{
b[i] = a[i];
}
for(i = m; i < n; i++) //开始出现循环,第m个人花费时间=个人打水时间加等待时间
{
b[i] = b[i - m] + a[i];
}
for(i = 0; i < n; i++)
{
sum += b[i];
}
printf("%d\n",sum);
return 0;
}
XYNUOJ 1248 排队打水问题