欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Wine trading in Gergovia UVA - 11054 Gergovia的酒交易---等价转换

程序员文章站 2022-03-14 19:58:51
...

题目:https://vjudge.net/problem/UVA-11054

【分析】
考虑最左边的村庄。如果需要买酒,即a1>0,则一定有劳动力从村庄2往左运给村庄1,而不管这些酒是从哪里来的(可能就是村庄2产的,也可能是更右边的村庄运到村庄2的)。这样,问题就等价于只有村庄2~n,且第2个村庄的需求为a1+a2的情形。不难发现,ai<0时这个推理也成立(劳动力同样需要|ai|个单位)。

#include<iostream>
#include<algorithm>
using namespace std;

int main() {
  int n;
  while(cin >> n && n) {
    long long ans = 0, a, last = 0;
    for(int i = 0; i < n; i++) {
      cin >> a;
      ans += abs(last);
      last += a;
    }
    cout << ans << "\n";
  }
  return 0;
}

 

相关标签: uva