#include <cstdio>
#include <cstring>
#include <cmath>
#include <map>
#include <set>
#include <vector>
#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <string>
#include <queue>
#include <list>
#include <stack>
using namespace std;
#define NN 16384
#define INF 0x7ffffff
#define N 40
int tile[N],num[N],ans[N];
char tot[5];
void init()
{
char st[3];
for (int i=1;i<=13;i++)
{
scanf("%s",st);
switch (st[1])
{
case 'm':tile[i]=0;break;
case 's':tile[i]=10;break;
case 'p':tile[i]=20;break;
case 'c':tile[i]=30;break;
}
tile[i]+=st[0]-'0';
}
memset(num,0,sizeof(num));
for (int i=1;i<=13;i++) num[tile[i]]++;
}
bool chii()
{
for (int i=1;i<N;i++)
if (num[i]!=0 && num[i]!=2) return false;
return true;
}
bool koku()
{
bool f=(num[1] && num[9] && num[11] && num[19] && num[21] && num[29] && num[31] && num[32] && num[33] && num[34] && num[35] && num[36] && num[37]);
int t=num[1]+num[9]+num[11]+num[19]+num[21]+num[29]+num[31]+num[32]+num[33]+num[34]+num[35]+num[36]+num[37];
return (f && t==14);
}
bool tsu()
{
int num2[N];
for (int i=1;i<N;i++) num2[i]=num[i];
int ss=0;
for (int i=1;i<30;i++)
{
while (num2[i]>=3)
{
num2[i]-=3;
ss++;
}
while (num2[i] && num2[i+1] && num2[i+2])
{
num2[i]--;
num2[i+1]--;
num2[i+2]--;
ss++;
}
}
for (int i=31;i<=37;i++)
{
while (num2[i]>=3)
{
num2[i]-=3;
ss++;
}
}
if (ss==4) return true;else return false;//return (ss==4);
}
bool check()
{
if (chii()) return true;
if (koku()) return true;
for (int i=1;i<=37;i++)
if (num[i]>=2)
{
num[i]-=2;
if (tsu())
{
num[i]+=2;
return true;
}
num[i]+=2;
}
return false;
}
void ntot(int m)
{
if (m<10) tot[1]='m';
else if (m<20) tot[1]='s';
else if (m<30) tot[1]='p';
else tot[1]='c';
tot[0]='0'+m%10;
}
int main()
{
//freopen("a.c","r",stdin);
int T,sum;
scanf("%d\n",&T);
for (int kk=1;kk<=T;kk++)
{
init();
sum=0;
for (int i=1;i<=37;i++)
if (i%10!=0 && num[i]<4)
{
tile[14]=i;
num[tile[14]]++;
if (check())
{
sum++;
ans[sum]=i;
}
num[tile[14]]--;
}
if (sum==0) printf("Nooten\n");
else
{
printf("%d",sum);
for (int i=1;i<=sum;i++)
{
ntot(ans[i]);
printf(" %s",tot);
}
printf("\n");
}
}
return 0;
}
2012 天津现场赛。
模拟题。