1402:圆桌分肉。每个座位分发量不一样,一个顺时针,一个逆时针。问是否能同时发完。
简单题。即判断数列是否能均分成两部分。先求和,再看是否能达到和值一半。
简单题。即判断数列是否能均分成两部分。先求和,再看是否能达到和值一半。
#include<stdio.h>
#include<iostream>
using namespace std;
int seat[30];
int main()
{
int n;
int total;
int tmp;
while(1)
{
cin>>n;
if(n==0)
break;
total=0;
for(int i=0;i<n;i++)
{
cin>>seat[i];
total+=seat[i];
}
if(total%2==1)
{
cout<<"No equal partitioning."<<endl;
continue;
}
else
total/=2;
tmp=0;
for(int i=0;i<n;i++)
{
tmp+=seat[i];
if(tmp==total)
{
printf("Sam stops at position %d and Ella stops at position %d.\n",i+1,i+2);
break;
}
else if(tmp>total)
{
cout<<"No equal partitioning."<<endl;
break;
}
}
}
}