本文主要是介绍poj 1247 Magnificent Meatballs,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这道题主要就是先理解题意就成功了一大半。。。很水的题目
题意:就是求当两个人按顺时针方向和按逆时针方向放置肉丸子后,当两个人肉丸子相等时所处的位置。
按以下顺序考虑:
1.如果肉丸的总数是奇数,那就不用往下考虑了,一定不行
2.把总数除以2,然后从host(N=1)开始sum-=seat【i】,一旦sum==0,证明成功;小于0,失败;否则就继续循环。。。
一个很简单的数学问题,我看到网上有写O(n^2)的代码的,不知道怎么考虑的。。。
AC的代码:
#include <stdio.h>int main()
{int n;int seat[35];int i;while(scanf("%d",&n)){if(n==0)return 0;int sum=0;for(i=1;i<=n;i++){scanf("%d",&seat[i]);sum+=seat[i];}if(sum%2) {printf("No equal partitioning.\n");continue;}elsesum/=2;for(i=1; ;i++){sum-=seat[i];if(sum==0){printf("Sam stops at position %d and Ella stops at position %d.\n",i,i+1);break; }else if(sum<0){printf("No equal partitioning.\n");break;}}}return 0;
}
这篇关于poj 1247 Magnificent Meatballs的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!