2
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
#include <cstring>
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
using namespace std;
|
||||
|
||||
void solveGroup() {
|
||||
bool tempList[12] = {false};
|
||||
bool realCoins[12] = {false};
|
||||
vector<pair<string, string> > 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<char>(i + 'A')) != string::npos) {
|
||||
if (conclusion == 1) {
|
||||
conclusion = -2;
|
||||
break;
|
||||
}
|
||||
conclusion = -1;
|
||||
} else if (s2.find(static_cast<char>(i + 'A')) != string::npos) {
|
||||
if (conclusion == -1) {
|
||||
conclusion = -2;
|
||||
break;
|
||||
}
|
||||
conclusion = 1;
|
||||
}
|
||||
}
|
||||
if (conclusion == -2 || conclusion == 0) { continue; }
|
||||
cout << static_cast<char>(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;
|
||||
}
|
||||
Reference in New Issue
Block a user