比赛 AHOI09DAY2模拟 评测结果 AAAAAAAAAA
题目名称 飞行棋 最终得分 100
用户昵称 .Xmz 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-03-09 09:03:48
显示代码纯文本
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <cmath>

using namespace std;

int n;
int d[21],R;

void init()
{
	scanf("%d",&n);
	for (int i=0;i<n;i++)
	{
		scanf("%d",d+i);
		d[i]*=2;
		R+=d[i];
	}
}

int main()
{
	freopen("fly.in","r",stdin);
	freopen("fly.out","w",stdout);
	init();
	int j,T,Q,k,ans=0;
	for (int i=0;i<n;i++)
	{
		T=0;
		j=i;
		do
		{
			T+=d[j];
			Q=R/2-T;
			if (Q<=0) break;
			for (k=(j+1)%n;k!=i;k=(k+1)%n)
			{
				Q-=d[k];
				if (Q<=0) break;
			}
			if (Q==0)
			{
				for (k=(k+1)%n;k!=i;k=(k+1)%n)
				{
					Q+=d[k];
					if (Q>=T) 
					{
						if (Q==T) ans++;
						break;
					}
				}
			}
			j=(j+1)%n;
		}while (j!=i);
	}
	printf("%d\n",ans/4);
	return 0;
}