Magnificent Meatballs
来源:互联网 发布:php 函数 变量='' 编辑:程序博客网 时间:2024/05/21 10:21
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 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.
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 Input5 9 4 2 8 35 3 9 4 2 86 1 2 1 2 1 26 1 2 1 2 1 10Sample 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(表示后面有n个数),在输入的n个数a1-aN表示每个客人点的肉丸个数(计算)这n个客人围城一圈 问是否存在一点i使得sum(a1-to-ai)==sum(ai+1-to-aN);
(输出)如果存在这样的i输出i和i+1表示Sam和Ella的位置 不然输出No equal partitioning.
分析:计算所有肉球的总和,如果不能被2整除 则不可能存在 如果存在从a1累加如果找到ai时有等于sum的一半并且i<n就输出i和i+1 不然就输出找不到,,,,,,----------->
源代码:
#include<iostream>
using namespace std;
int main()
{
int num[30],T;
while(cin>>T&&T!=0)
{
int sum=0;
int location=0;
for(int i=0;i<T;++i)
{
cin>>num[i];
sum+=num[i]; //求和
}
if(sum%2!=0)cout<<"No equal partitioning."<<endl; //为奇数则直接输出
else
{
int sum1=0;
bool flag=false;
for(int i=0;i<T-1;++i)
{
sum1+=num[i];
if(sum1==sum/2){location=i+1;flag=true;break;} //若存在则将位置存放在location中,将flag置为true else if(sum1>sum/2)break; //当sum1大于sum/2时,证明不存在
}
if(flag)cout<<"Sam stops at position "<<location<<" and Ella stops at position "<<location+1<<"."<<endl; else cout<<"No equal partitioning."<<endl;
}
}
return 0;
}
- Magnificent Meatballs
- zoj 1402 Magnificent Meatballs
- poj1247(Magnificent Meatballs)
- POJ 1247 Magnificent Meatballs
- zoj 1402 Magnificent Meatballs
- zoj1402-------------Magnificent Meatballs
- ZOJ 1402 Magnificent Meatballs
- 1247 Magnificent Meatballs
- ZOJ 1402 Magnificent Meatballs
- zoj 1402 Magnificent Meatballs
- poj 1247 Magnificent Meatballs
- POJ1247:Magnificent Meatballs
- POJ 1247 Magnificent Meatballs
- 【模拟】poj1247 Magnificent Meatballs
- zoj 1402 Magnificent Meatballs
- Magnificent Meatballs - 1247
- POJ 1247 Magnificent Meatballs 笔记
- zoj 1402 Magnificent Meatballs(水~)
- POJ1837纪念自己做出来的第一道DP.....
- K-Means 算法
- C++函数模板重载学习笔记
- java中set/map/list/vector 的详解
- u-Boot 顶层Makefile解析(一)
- Magnificent Meatballs
- android客户端给服务端发post请求
- 读书笔记之《编写高质量代码:改善C#程序的157个建议》
- 单链表的基本操作
- oracle remap_schema参数
- 1.二元查找树转变成排序的双向链表
- UVa 10394 Twin Primes (孪生素数)
- iOS App Archive & Generic Xcode Archive
- java输入输出流层次结构