题目大意:移动方块使所有列一样高,一次一个,求移动次数。
解题思路:求平均数然后计算每列大于平均数的个数。
#include<iostream>
#include<cstdio>
#include<string.h>
#include<stdlib.h>
#include<cmath>
using namespace std;
int n[100];
int count = 0;
int main() {
int T;
while(scanf("%d", &T) != EOF && T) {
int sum = 0, ave = 0, tot = 0;
for (int i = 0; i < T; i++) {
scanf("%d", &n[i]);
sum += n[i];
}
ave = sum / T;
for (int i = 0; i < T; i++) {
if(n[i] > ave)
tot = tot + n[i] - ave;
}
printf("Set #%d\nThe minimum number of moves is %d.\n\n", ++count, tot);
}
return 0;
}