poj1013 枚举(称硬币)

/*
Time:2019.10.31
Author: Goven
type:称硬币——枚举 
err:
ref:
*/
#include<iostream>
#include<string>

using namespace std;

int main()
{
    string s1[3], s2[3], s3[3];
    
    int n;
    cin >> n;
    while (n--) {
        for (int i = 0; i < 3; i++) {
            cin >> s1[i] >> s2[i] >> s3[i];
        }
        for (char i = 'A'; i < 'M'; i++) {
            //light 
            int flag = 0;
            for (int j = 0; j < 3; j++) {
                if ( s3[j] == "even" && s1[j].find(i) == string::npos && s2[j].find(i) == string::npos) flag++; 
                if ( s3[j] == "up" && s1[j].find(i) == string::npos && s2[j].find(i) != string::npos) flag++; 
                if ( s3[j] == "down" && s1[j].find(i) != string::npos && s2[j].find(i) == string::npos) flag++;
            }
            if (flag == 3) {
                cout << i << " is the counterfeit coin and it is light." << endl;
                break;
            }
            
            //height
            flag = 0;
            for (int j = 0; j < 3; j++) {
                if ( s3[j] == "even" && s1[j].find(i) == string::npos && s2[j].find(i) == string::npos) flag++; 
                if ( s3[j] == "down" && s1[j].find(i) == string::npos && s2[j].find(i) != string::npos) flag++; 
                if ( s3[j] == "up" && s1[j].find(i) != string::npos && s2[j].find(i) == string::npos) flag++;
            }
            if (flag == 3) {
                cout << i << " is the counterfeit coin and it is heavy." << endl;
                break;
            }
        }
    }
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容