如果不存在与和同余的数字那么先手必败。
如果存在,去掉一个同余数字之后,统计剩下的可以被3整除的数字个数。如果为奇数则T,否则为S
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
#include <vector>
#include <map>
#include <stack>
#include <algorithm>
#define MAXN 1000005
#define MOD 1000000007
#define INF 100000000
#define ll long long
using namespace std;
int main()
{
int T,kase=0;
scanf("%d",&T);
while(T--)
{
char str[1005]= {0};
scanf("%s",str);
int num[12]= {0},sum=0;
for(int i=0; str[i]; ++i)
{
sum+=str[i]-'0';
num[str[i]-'0']++;
}
int res=0;
bool p=false;
for(int i=1; i<=9; ++i)
{
if(!p&&num[i]&&(i%3==sum%3))
{
p=true;
num[i]--;
break;
}
}
printf("Case %d: ",++kase);
if(!p) puts("T");
else
{
int res=0;
for(int i=1; i<=9; ++i)
if(num[i]&&i%3==0)
res+=num[i];
if(res%2==0) puts("S");
else puts("T");
}
}
return 0;
}