当前位置: 代码迷 >> 综合 >> poj 2940 Wine Trading in Gergovia
  详细解决方案

poj 2940 Wine Trading in Gergovia

热度:85   发布时间:2024-01-13 21:28:06.0

1.题意:有n个居民买酒与卖酒,没移动一个房子距离相当用一个工作量,求最少工作量。

5
5 -4 1 -3 1
6
-1000 -1000 -1000 1000 1000 1000
0

多个样例,每个样例有两行,5代表有5个居民,第二行代表每个居民的需求,整数代表买进,负数代表卖出;

2.思路:一家一家的访问,一家一家的累加即可;

3.优化后代码:

#include<stdio.h>
int main()
{int n;int a;long long sum;long long ans;while(scanf("%d",&n)!=EOF){if(n==0)break;sum=ans=0;for(int i=0;i<n;i++){scanf("%d",&a);sum+=a;if(sum<0)ans-=sum;if(sum>=0)ans+=sum;}printf("%lld\n",ans);}return 0;}