Posted on 2011-12-06 21:23
C小加 閱讀(2295)
評論(0) 編輯 收藏 引用 所屬分類:
解題報告
題意:
S從1順時針走,E從n逆時針走。使走到一個位置,他們正好把肉丸給完,而且給的肉丸數(shù)量相等。
思路:
水題,每次讓給出的總?cè)馔钄?shù)最少的那個人繼續(xù)給,直到所有人給完。然后判斷兩個人給的總數(shù)是否相同。
代碼:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int table[33];
int main()
{
//freopen("input.txt","r",stdin);
int n;
while(cin>>n,n)
{
memset(table,0,sizeof(table));
int i;
for(i=1;i<=n;i++)
{
cin>>table[i];
}
int sumE=0,sumS=0;
int postE=n,postS=1;
while(postS<=postE)
{
if(sumE>=sumS) {sumS+=table[postS];postS++;}
else {sumE+=table[postE];postE--;}
}
if(sumE!=sumS)
{
cout<<"No equal partitioning."<<endl;
}
else cout<<"Sam stops at position "<<--postS<<" and Ella stops at position "<<++postE<<"."<<endl;
}
return 0;
}