http://poj.org/problem?id=1247

Magnificent Meatballs
Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 6739   Accepted: 4471

Description

Sam and Ella run a catering service. They like to put on a show when serving meatballs to guests seated at round tables. They march out of the kitchen with pots of meatballs and start serving adjacent guests. Ella goes counterclockwise and Sam goes clockwise, until they both plop down their last meatball, at the same time, again at adjacent guests. This impressive routine can only be accomplished if they can divide the table into two sections, each having the same number of meatballs. You are to write a program to assist them.

At these catering events, each table seats 2 <= N <= 30 guests. Each guest orders at least one and at most nine meatballs. Each place at the table is numbered from 1 to N, with the host at position 1 and the host's spouse at position N. Sam always serves the host first then proceeds to serve guests in increasing order. Ella serves the spouse first, then serves guests in decreasing order. The figures illustrate the first two example input cases. 

Input

Input consists of one or more test cases. Each test case contains the number of guests N followed by meatballs ordered by each guest, from guest 1 to guest N. The end of the input is a line with a single zero. 

Output

For each table, output a single line with the ending positions for Sam and Ella, or the sentence indicating an equal partitioning isn't possible. Use the exact formatting shown below. 

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[], _i, n, sum, s1, s2; while(scanf("%d", &n), n){
sum = ;
for(_i=; _i<n; _i++){
scanf("%d", &data[_i]);
sum += data[_i];
}
s1 = , s2 = sum;
for(_i=; _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+, _i+);
}
} return ;
}

最新文章

  1. The replication agent has not logged a progress message in 10 minutes.
  2. 关于sigwait
  3. 12个滑稽的C语言面试问答——《12个有趣的C语言问答》评析(5)
  4. oracle 时间函数
  5. Stage3D学习笔记(七):动态纹理
  6. mybatis09
  7. iOS8的屏幕旋转的问题
  8. [BZOJ1087] [SCOI2005] 互不侵犯King (状压dp)
  9. Python爬虫【实战篇】百度贴吧爬取页面存到本地
  10. IIS版本号可以被识别 解决方案
  11. office2013 Word 缺少校对工具,按提示下载、安装了文件还是不成功的解决方案
  12. tornado--初识tornado
  13. CF833D Red-Black Cobweb 点分治、树状数组
  14. 微信小程序精品demo
  15. 华硕200系主板完美兼容M.2安装Win7系统
  16. Java之JSON处理(JSONObject、JSONArray)
  17. centos 下部署django nginx+uwsgi
  18. Jenkins发送邮件,邮件正文嵌套的html中文显示乱码
  19. 【文文殿下】【BZOJ4804】欧拉心算
  20. poj_3461 kmp

热门文章

  1. python学习笔记(二十四)继承与封装
  2. 新建虚拟机与本机ping不通(一招解决)
  3. POJ1459:Power Network(dinic)
  4. SDUT中大数实现的题目,持续更新(JAVA实现)
  5. 转:WebClient类(温习一下)
  6. HDU 1532 Drainage Ditches(网络流模板题)
  7. JQuery如何实现双击事件时不触发单击事件,解决鼠标单双击冲突问题
  8. 后缀自动机模板 SAM
  9. XVII Open Cup named after E.V. Pankratiev Grand Prix of Moscow Workshops, Sunday, April 23, 2017 Problem D. Great Again
  10. Linux下多线程下载工具myget