整数游戏 (Integer Game,UVa 11489)

 1 #include <iostream>
 2 #include <string.h>
 3 #include <string>
 4 #include <fstream>
 5 #include <algorithm>
 6 #include <stdio.h>
 7 #include <vector>
 8 #include <queue>
 9 #include <set>
10 #include <cmath>
11 using namespace std;
12 const double eps = 1e-8;
13 const int INF=0x7fffffff;
14 unsigned long long uINF = ~0LL;
15 #define MAXN 10000007
16 typedef long long LL;
17 LL vis[MAXN];
18 LL prime[MAXN];
19 
20 void sieve(LL n)
21 {
22     LL m=(LL)sqrt(n+0.5);
23     memset(vis,0,sizeof(vis));
24     for(LL i=2;i<=m;i++)if(!vis[i])
25     for(LL j=i*i;j<=n;j+=i)vis[j]=1;
26 }
27 
28 LL gen_prime(LL n)
29 {
30     sieve(n);
31     LL c=0;
32     for(LL i=2;i<=n;i++)if(!vis[i])
33         prime[c++]=i;
34     return c;
35 }
36 
37 LL gcd(LL a,LL b)
38 {
39     return b==0?a:gcd(b,a%b);
40 }
41 
42 int main()
43 {
44     int T,t=1;scanf("%d",&T);
45     string s;
46     while(T--)
47     {
48         cin>>s;
49         int sum=0,count=0;
50         for(int i=0;i<s.length();i++)
51         {sum+=s[i]-'0';if((s[i]-'0')%3==0)count++;}
52         bool flag=false;
53         for(int i=0;i<s.length();i++)
54         {
55             if((sum-(s[i]-'0'))%3==0){flag=true;if(sum%3==0)count--;break;}
56         }
57         printf("Case %d: ",t++);
58         if(flag&&count%2==0)printf("S
");
59         else printf("T
");
60     }
61 
62     return 0;
63 }
原文地址:https://www.cnblogs.com/TO-Asia/p/3207972.html