uva 11489

简单博弈

#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <map>
#include <set>
#include <stack>
#include <vector>
#include <sstream>
#include <string>
#include <cstring>
#include <algorithm>
#include <iostream>
#define maxn 1010
#define INF 0x7fffffff
#define inf 10000000
#define MOD 1000000007
#define ull unsigned long long
#define ll long long
using namespace std;

char s[maxn];
int num[10], sum, len;

void init()
{
    memset(num, 0, sizeof(num));
    sum = 0;
    len = strlen(s);
    for(int i = 0; i < len; ++ i)
    {
        num[s[i]-'0'] ++;
        sum += s[i] - '0';
    }
}

bool judge()
{
    int ans = num[0]+num[3]+num[9]+num[6];
    return ans%2;
}

int main()
{
    int t, ca = 1;
    scanf("%d", &t);
    getchar();
    while(t--)
    {
        gets(s);
        init();
        printf("Case %d: ", ca++);
        if(sum%3 == 0)
        {
            if(judge()) puts("S");
            else puts("T");
        }
        else
        {
            int i;
            for(i = 1; i < 10; ++ i)
                if(num[i] && (sum-i)%3 == 0)
                {
                    num[i] --;
                    break;
                }
            if(i < 10 && !judge()) puts("S");
            else puts("T");
        }
    }
    return 0;
}


posted @ 2014-01-19 14:27  xlc2845  阅读(140)  评论(0)    收藏  举报