XYNUOJ 1248 排队打水问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 排队打水问题的主要内容,如果未能解决你的问题,请参考以下文章