记录编号 38216 评测结果 AAAAAAAAAA
题目名称 [USACO Open09] 数字的游戏 最终得分 100
用户昵称 Gravatar王者自由 是否通过 通过
代码语言 C++ 运行时间 0.569 s
提交时间 2012-04-16 13:03:40 内存使用 1.21 MiB
显示代码纯文本
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std;
const int S = 10, G = 110, N = 1000000 + 10;
int g, n[G], m, r, l;
char s[S];
bool f[N];
int main() {
    freopen("cdgame.in", "r", stdin);
    freopen("cdgame.out", "w", stdout);
    scanf("%d", &g);
    for(int i=0; i<g; i++)
        scanf("%d", n+i);
    m = *max_element(n, n+g);
    for(int i=1; i<=m; i++) {
        sprintf(s, "%d", i);
        l = '9', r = '0';
        for(int j=0; j<strlen(s); j++) {
            if(s[j] != '0' && s[j] < l) l = s[j];
            if(s[j] != '0' && s[j] > r) r = s[j];
        }
        l -= '0', r -= '0';
        f[i] = 1 - (f[i-l] && f[i-r]);
    }
    for(int i=0; i<g; i++)
        printf("%s\n", f[n[i]] ? "YES" : "NO");
    return 0;
}