常量溢出,显示的是warning C4307: '-' : integral constant overflow,那位大神可以帮忙改一下
八了个戒 2017-12-11 09:55:34 #include<cstdio>
#include<iostream>
using namespace std;
int w[10010]; //每个同学的接水量
int lastw[10010]; //每个水龙头位置的同学还需要的接水量
int main()
{
int i, j;
int n, m;
int time = 0;
scanf("%d%d",&n,&m);
for (i=1; i<=n; i++) scanf("%d",&w[i]);
for (i=1; i<=m; i++) lastw[i] = w[i]; //一开始的时候,前m个同学会同时去接水
i = m + 1;
while (i <= n)
{
int time_min = (1<<31)-1;
for (j=1; j<=m; j++) //在水龙头前的m个同学中,找到最先接完水的同学所用的时间
{
time_min = min(time_min,lastw[j]);
}
time += time_min; //把最先接完水的同学所用的时间累加到总时间中
for (j=1; j<=m; j++) //计算最快的同学接完水的时候,在水龙头前的m个同学还需要的水量
{
lastw[j] -= time_min;
if (lastw[j] == 0)
{
lastw[j] = w[i];
i++;
}
}
}
time_min = 0;
for (i=1; i<=m; i++) //这时只剩下最后m个同学了,要让所有的同学都接完水,要找最后一个同学接完水所用的时间
{
time_min = max(time_min,lastw[i]);
}
time += time_min;
printf("%d\n",time);
return 0;
}