我遇到了关于spoj的问题。这是您测试编辑的源代码的ideone链接:http://ideone.com/IGrTjK,问题的链接是:http://www.spoj.com/problems/CANDY/它似乎给出了尽管传递给定的格式正确的测试用例,但我还是在使用了它。这是我的代码。
#include<stdio.h>
int main() {
unsigned int n, i, sum, avg, count;
while(1) {
scanf("%d", &n);
if(n == -1)
break;
unsigned int a[n+1];
sum = count = 0;
for(i=0; i<n; i++) {
scanf("%d", &a[i]);
sum += a[i];
}
if(sum%n != 0) {
printf("-1\n");
}
else {
avg = sum/n;
for(i=0; a[i]<avg; i++)
count += (avg - a[i]);
printf("%d\n", count);
}
}
return 0;
}
答案 0 :(得分:2)
您的主循环以等于或大于平均值的第一个数据包结束:
for(i=0;a[i]<avg;i++) count+=(avg-a[i]);
需要查看所有数据包:
for(i=0;i<n;i++) {
if (a[i] < avg)
count+=(avg-a[i]);
}