#include #include #include using namespace std; void solveGroup() { bool tempList[12] = {false}; bool realCoins[12] = {false}; vector > lighterResults; for (int _ = 0; _ < 3; _++) { string s1, s2, comparison; cin >> s1 >> s2 >> comparison; if (comparison == "even") { for (const char c: s1 + s2) { realCoins[c - 'A'] = true; } } else { memset(tempList, false, sizeof(tempList)); for (const char c: s1 + s2) { tempList[c - 'A'] = true; } for (int i = 0; i < 12; i++) { if (!tempList[i]) { realCoins[i] = true; } } if (comparison == "down") { lighterResults.emplace_back(s2, s1); } else { lighterResults.emplace_back(s1, s2); } } } for (int i = 0; i < 12; i++) { if (realCoins[i]) continue; int conclusion = 0; for (const auto &[s1, s2]: lighterResults) { if (s1.find(static_cast(i + 'A')) != string::npos) { if (conclusion == 1) { conclusion = -2; break; } conclusion = -1; } else if (s2.find(static_cast(i + 'A')) != string::npos) { if (conclusion == -1) { conclusion = -2; break; } conclusion = 1; } } if (conclusion == -2 || conclusion == 0) { continue; } cout << static_cast(i + 'A') << " is the counterfeit coin and it is " << (conclusion == 1 ? "light." : "heavy.") << endl; } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; for (int _ = 0; _ < n; _++) { solveGroup(); } return 0; }