比较简单的题目,题目大意就是将n个数字围成一个圈,找到一个划分,是的划分左边的数字之和等于右边的数字之和:
e.g 10 1 2 2 5,那么可以找到一个划分10 | 1 2 2 5使得两边数字之和都等于10
见ac代码
#include <stdio.h> int main()
{
int g,N[];
while(scanf("%d",&g)!=EOF&&g)
{
int i,j;
for(i=;i<=g;i++)
scanf("%d",&N[i]); int sam=,ella=;
for(i=,j=g;i<=j;)
{
if(sam<=ella)
{
sam+=N[i++];
}
else
{
ella+=N[j--];
}
} if(sam==ella)
{
printf("Sam stops at position %d and Ella stops at position %d.\n",i-,j+);
}
else
{
printf("No equal partitioning.\n");
}
} return ;
}