Posted on 2010-09-01 20:32
acronix 阅读(123)
评论(0) 编辑 收藏 引用 所属分类:
qqy解题报告
//考点: 纯模拟
//思路: 只要枚举分割点 然后发现只要 记录到分割点前所有和顺便计算出总和sum就行 求余下部分的和只需用到sum和dp[i]
//提交情况: 1AC 感动得热泪盈眶啊
//收获: 练习了求和 知道怎样记录每个递加的过程
//经验: 写了代码之后要检查 第一次写的时候就很冲动地把i++ 写成了 i+=2
//ACcode
#include<memory.h>
#include<stdio.h>
#define MAXN 31
int a[MAXN];
int dp[MAXN];
int main()
{
int t,i;
while(1)
{
scanf("%d",&t);
if(t == 0) break;
int sum=0;
for(i=1;i<=t;i++)
{
scanf("%d",&a[i]);
dp[i]=dp[i-1]+a[i];
}
sum=dp[t];
bool flag = false;
int mark;
for(i=1;i<t;i++)
{
if(dp[i] == sum-dp[i])
{
flag = true;
mark = i;
break;
}
}
if(flag == false) printf("No equal partitioning.\n");
else printf("Sam stops at position %d and Ella stops at position %d.\n",mark,mark+1);
memset(dp,0,sizeof(dp));
}
return 0;
}