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;
}
else
sum/=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;
}
最後更新:2017-04-03 14:53:53