暴力枚举每一种情况
#include <cstdio>
#include <iostream>
#include <string>
using namespace std;
int w[15];
string s_l[3], s_r[3], state[3];
bool judge()
{
for(int i = 0; i < 3; i++)
{
int sum_l = 0, sum_r = 0;
for(int j = 0; j < s_l[i].size(); j++)
sum_l += w[s_l[i][j] - 'A'];
for(int j = 0; j < s_r[i].size(); j++)
sum_r += w[s_r[i][j] - 'A'];
if(sum_l > sum_r && state[i] != "up") return false;
if(sum_l == sum_r && state[i] != "even") return false;
if(sum_l < sum_r && state[i] != "down") return false;
}
return true;
}
bool is_heavy;
int solve()
{
for(int i = 0; i < 12; i++)
{
for(int j = 0; j < 12; j++)
w[j] = 1;
w[i] = 2;
if(judge()) {is_heavy = true; return i;}
w[i] = 0;
if(judge()) {is_heavy = false; return i;}
}
}
int main()
{
int T;
scanf("%d", &T);
while(T--)
{
for(int i = 0; i < 3; i++)
cin >> s_l[i] >> s_r[i] >> state[i];
printf("%c is the counterfeit coin and it is ", 'A' + solve());
if(is_heavy) printf("heavy.\n");
else printf("light.\n");
}
return 0;
}