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