| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
枚举每一个coin,如果不是false即为true,一定看得懂#include <iostream>
#include <cstring>
using namespace std;
char Left[3][7];
char Right[3][7];
char Result[3][5];
//true == light false == heavy
bool isCounterfeit(char c, bool weight)
{
for (int i = 0; i < 3; i++)
switch (Result[i][0]) {
case 'e':
if (strchr(Left[i], c) || strchr(Right[i], c)) return false; break;
case 'u': //the right side is light
if (weight) { //light coin
if (strchr(Right[i], c) == NULL) return false; //in the right side of the balance
}
else { //heavy coin
if (strchr(Left[i], c) == NULL) return false; //in the left side of the balance
}
break;
case 'd': //the right side is heavy
if (weight) { //light coin
if (strchr(Left[i], c) == NULL) return false; //in the left side of the balance
}
else { //heavy coin
if (strchr(Right[i], c) == NULL) return false; //in the right side of the balance
}
break;
}
return true;
}
int main()
{
int n;
cin >> n;
while (n--) {
for (int i = 0; i < 3; i++)
cin >> Left[i] >> Right[i] >> Result[i];
for (char c = 'A'; c <= 'L'; c++) {
if (isCounterfeit(c, true)) {
cout << c << " is the counterfeit coin and it is light." << endl;
break;
}
if (isCounterfeit(c, false)) {
cout << c << " is the counterfeit coin and it is heavy." << endl;
break;
}
}
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator