题目
源地址:
http://poj.org/problem?id=1477
理解
只有比平均数还要大的柱子需要移动,而移动的具体方式不需要考虑,明白了这一点就是水题了。
代码
#include <cstdio>
#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char const *argv[])
{
int n, i, sum, ave, j, ans, t = 1;
int e[51];
while (scanf("%d", &n) == 1 && n)
{
ave = sum = 0;
for (i = 1; i <= n; i++)
{
scanf("%d", &e[i]);
sum += e[i];
}
ave = sum / n;
ans = 0;
for (i = 1; i <= n; i++)
{
if (e[i] > ave)
{
ans += e[i] - ave;
}
}
cout << "Set #" << t++ << "\nThe minimum number of moves is " << ans << "." << endl << endl;
}
return 0;
}
更新日志
- 2014年08月12日 已AC。