题目链接:http://codeforces.com/contest/895/problem/B
题目大意:一块披萨分成n份,问将它分成两部分(连续的),差值最小是多少。
思路:暴力。
代码:
#include <bits/stdc++.h>
using namespace std;
int a[800];
int main()
{
int n;
scanf("%d",&n);
int sum=0;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
a[i+n]=a[i];
}
int ans=sum;
for(int i=1;i<=n;i++)
{
int sun=0;
for(int j=i;j<i+n;j++)//不同的起点
{
sun+=a[j];
ans=min(ans,abs(sum-2*sun));//记录最小的差值
}
}
printf("%d\n",ans);
return 0;
}