#include <iostream>
#include <cstdio>
using namespace std;
/*
问题:枚举问题 解决办法
openjudge:2692假币问题
解决思路:考虑每一个位置 为轻light 为heavy 为even
计算符合这个假设情况既可以输出。
时间:2021年3月30日0时38分
*/
//数据结构定义
int status[12];
char left1[3][7];
char right1[3][7];
char result[3][7];
//判断 是否满足假设的情况
bool balanced()
{
int i, k, leftW, rightW;
for ( i = 0; i < 3; i++)
{
leftW = rightW = 0;
for (k = 0; k < 6 && left1[i][k]!=0;k++)
{
leftW += status[left1[i][k]-'A'];
rightW += status[right1[i][k]-'A'];
}
if (leftW > rightW && result[i][0] != 'u')
{
return false;
}
if (leftW == rightW && result[i][0] != 'e')
{
return false;
}
if (leftW < rightW && result[i][0] != 'd')
{
return false;
}
}
return true;
}
//假设每个位置是 重 轻 为ture 的话 就知道是谁了
//第i重 为1 第i个轻为 -1
int main()
{
int i, num;
scanf("%d",&num);
while (num-- > 0)
{
for (i = 0; i < 3;i++)
{
scanf("%s %s %s",left1[i],right1[i],result[i]);
}
for (i = 0; i < 12; i++)
status[i] = 0;
for (i = 0; i < 12; i++)
{
//第i个重
status[i] = 1;
if (balanced())
break;
//第i个轻
status[i] = -1;
if (balanced())
break;
status[i] = 0;
}
printf("%c is the counterfeit coin and it is %s.\n", i + 'A', status[i] > 0 ? "heavy":"light");
}
//system("pause");
return 0;
}