Gergovia的酒交易 Wine trading in Gergovia
题面翻译
n个等距村庄,每个村庄要么买酒要么卖酒,把k个单位的酒运到相邻村庄去需要k*酒的需求的劳动力,问最少需要多少劳动力才能满足所有的村庄的要求。
感谢@zhbayl000 提供的翻译
题目描述
输入格式
输出格式
样例 #1
样例输入 #1
5
5 -4 1 -3 1
6
-1000 -1000 -1000 1000 1000 1000
0
样例输出 #1
9
9000
代码:
很简单的,我都做了39分钟很容易懂
#include <bits/stdc++.h>
using namespace std;
long long n;//long long!!!
long long a[1000000];
long long ans;
long long k;
int main()
{
while(cin>>n)
{
if(n==0)
{
break;
}
for(long long i=1;i<=n;i++)//输入
{
cin>>a[i];
}
for(long long i=1;i<=n;i++)
{
ans+=abs(k);//每次加上k的绝对值
k+=a[i]; //k每次加上a[i]
}
cout<<ans<<endl;
ans=0;//清零
k=0;
}
return 0;
}
代码2:
其实就是把那两个循环合在一起。
#include <bits/stdc++.h>
using namespace std;
long long n;
long long x;
long long ans;
long long k;
int main()
{
while(cin>>n)
{
if(n==0)
{
break;
}
for(long long i=1;i<=n;i++)
{
cin>>x;
ans+=abs(k);
k+=x;
}
cout<<ans<<endl;
ans=0;
k=0;
}
return 0;
}
结束啦~~~