比赛 NOIP2008集训模拟3 评测结果 AAAAAAAAAA
题目名称 硬币游戏 最终得分 100
用户昵称 zqzas 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2008-11-12 11:20:37
显示代码纯文本
#include <iostream>

#define MAXN 1000010

using namespace std;

const int n=1000001;
int f[MAXN];

void run()
{
	int i,k;
	f[1]=0;
	f[2]=0;
	for (i=3;i<=n;i++)
	{
		f[i]=1;
		if (f[i-1]==1 || f[i-2]==1)
		{
			f[i]=0;
			continue;
		}
		//take 1
		for (k=1;k<=n-2;k++)
		{
			if (f[k]==f[n-1-k])
			{
				f[i]=0;
				break;
			}
		}
		if (f[i]==0)
			continue;
		//take 2
		for (k=1;k<=n-3;k++)
			if (f[k]==f[n-2-k])
			{
				f[i]=0;
				break;
			}
	}
}

void ini()
{
	int i,k,a,ans;
	run();
	cin>>k;
	for (i=0;i<k;i++)
	{
		cin>>a;
		if (a>=3)
		{
			if (f[a-1]==1 || f[a-2]==1)
				ans=0;
			else
				ans=1;
		}
		else
			ans=0;
		if (ans==0)
			cout<<"Alice";
		else
			cout<<"Bob";
		if (i!=k-1)
			cout<<endl;
	}
}

int main()
{
	freopen("coins.in","r",stdin);
	freopen("coins.out","w",stdout);
	ini();
	return 0;
}