http://poj.org/problem?id=1247
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 6739 | Accepted: 4471 |
Description
Input
Output
Sample Input
5 9 4 2 8 3 5 3 9 4 2 8 6 1 2 1 2 1 2 6 1 2 1 2 1 1 0
Sample Output
Sam stops at position 2 and Ella stops at position 3. No equal partitioning. No equal partitioning. Sam stops at position 3 and Ella stops at position 4.
其实刚开始对题目的意思没有把握准,但是把题目的意思理解了之后就非常的简单,这道题的意思可以简单的理解为:圆桌上有N个数字,Sam从1的位置开始往N走,而Ella则从N往1走,问他们哪个相遇的位置能让两端的数字的和相等;如果不论在哪个位置都不能相等的话,那就输出 No equal partitioning.
好了,现在就简单多了吧。
#include "stdio.h" #include "math.h" #include "string.h" #include "stdlib.h" int main(int argc, char const *argv[]) { int data[35], _i, n, sum, s1, s2; while(scanf("%d", &n), n){ sum = 0; for(_i=0; _i<n; _i++){ scanf("%d", &data[_i]); sum += data[_i]; } s1 = 0, s2 = sum; for(_i=0; _i<n; _i++){ s1 += data[_i]; s2 -= data[_i]; if(s1 == s2){ break; } } if(_i>=n){ printf("No equal partitioning.\n"); }else{ printf("Sam stops at position %d and Ella stops at position %d.\n", _i+1, _i+2); } } return 0; }
原文:http://www.cnblogs.com/xumengxuan/p/3952509.html