POJ 1247 Magnificent Meatballs
2014-04-03 16:16
288 查看
原题链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1247
版权声明:版权归作者WeiSteven所有,转载请注明!
本题是讲两个人,负责对围坐在圆桌周围的所有guests进行分发Meatballs。
每个座位上的人需要的不同,请问能否建立一个分割点,使得两人负责的Meatballs的数量一样。
简单的一道题:
AC的参考代码:
代码 1 #include <stdio.h>
2 int N[31];//最多有31个guests
3
4 void doData(int n)
5 {
6 int i=0,j=n-1;
7 int sumA=N[0];
8 int sumB=N[n-1];
9 while(i!=j-1)
10 {
11 if(sumA<sumB)
12 {
13 i++;
14 sumA+=N[i];
15 }
16 else
17 {
18 j--;
19 sumB+=N[j];
20 }
21 }
22 if(sumA==sumB)
23 printf("Sam stops at position %d and Ella stops at position %d.\n",i+1,j+1);
24 else
25 printf("No equal partitioning.\n");
26 }
27 int main()
28 {
29 freopen("in.txt","r",stdin);
30 int n;
31 while(scanf("%d",&n)!=EOF&&n!=0)
32 {
33 for(int i=0;i<n;i++)
34 {
35 scanf("%d",&N[i]);
36 }
37 doData(n);
38 }
39 return 1;
40 }
版权声明:版权归作者WeiSteven所有,转载请注明!
本题是讲两个人,负责对围坐在圆桌周围的所有guests进行分发Meatballs。
每个座位上的人需要的不同,请问能否建立一个分割点,使得两人负责的Meatballs的数量一样。
简单的一道题:
AC的参考代码:
代码 1 #include <stdio.h>
2 int N[31];//最多有31个guests
3
4 void doData(int n)
5 {
6 int i=0,j=n-1;
7 int sumA=N[0];
8 int sumB=N[n-1];
9 while(i!=j-1)
10 {
11 if(sumA<sumB)
12 {
13 i++;
14 sumA+=N[i];
15 }
16 else
17 {
18 j--;
19 sumB+=N[j];
20 }
21 }
22 if(sumA==sumB)
23 printf("Sam stops at position %d and Ella stops at position %d.\n",i+1,j+1);
24 else
25 printf("No equal partitioning.\n");
26 }
27 int main()
28 {
29 freopen("in.txt","r",stdin);
30 int n;
31 while(scanf("%d",&n)!=EOF&&n!=0)
32 {
33 for(int i=0;i<n;i++)
34 {
35 scanf("%d",&N[i]);
36 }
37 doData(n);
38 }
39 return 1;
40 }
相关文章推荐
- POJ 1142 Smith Numbers
- POJ 1171 Letter Game 解题思路
- CentOs 设置静态IP 方法
- 【javascript】iframe父子兄弟之间调用传值(contentWindow && parent) (推荐)
- 南阳理工OJ_题目540 奇怪的排序
- 在django项目中自定义manage命令(转)
- ruby富文本框
- Windows Server AppFabric 缓存容量规划指南
- OGR DXF Driver
- salt源码安装
- C++基础(三)const
- DP一题解题报告POJ1141 Brackets Sequence
- 《C++语言99个常见编程错误》读书笔记
- 感人故事和视频
- 人人德克萨斯牌出手规则整理
- 【回顾】中国剩余定理
- OpenMP相关知识索引
- 如何进行有效的沟通
- 【Z】男人应该努力去做的
- AScii表