知识点:思维
这个题条件给的很多,所有的元素和是0,然后让你算最小的花费,其实通过给的条件,我们知道一定有方法满足每个村子,即使具体的方案不知道,只要我们知道最后能满足就行了,这样可以猜出来本题的做法,就是遍历统计答案即可,刘汝佳说用到的是等价转换的思想,应该是这样的,
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int main() {
int n;
while (cin >> n && n) {
int a[N];
for (int i = 0; i < n; i++) cin >> a[i];
int sum = 0;
long long ans = 0;
for (int i = 0; i < n - 1; i++) {
sum += a[i];
ans += (long long) abs(sum);
}
cout << ans << endl;
}
return 0;
}