比赛 20120416 评测结果 AAAAAAAAAA
题目名称 数字的游戏 最终得分 100
用户昵称 kaaala 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-04-16 09:55:29
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>

using namespace std;

int G,N[110],mxx;
bool f[1000010];

void dp()
{
	for(int i=1;i<=mxx;i++)
	{
		char s[10];
		int bg=1,sm=i;
		sprintf(s,"%d",i);
		for(int j=0;j<strlen(s);j++)
		{
			int k=s[j]-48;
			bg=max(bg,k);
			if(k!=0&&sm>k)
				sm=k;
		}
		f[i]=!(f[i-bg]&&f[i-sm]);
	}
}

int main()
{
	freopen("cdgame.in","r",stdin);
	freopen("cdgame.out","w",stdout);
	scanf("%d",&G);
	for(int i=1;i<=G;i++)
	{
		scanf("%d",&N[i]);
		mxx=max(mxx,N[i]);
	}
	dp();
	for(int i=1;i<=G;i++)
		if(f[N[i]])
			printf("YES\n");
		else
			printf("NO\n");
	return 0;
}