美文网首页
poj1013 枚举(称硬币)

poj1013 枚举(称硬币)

作者: 暖昼氤氲 | 来源:发表于2019-10-31 20:15 被阅读0次
    /*
    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;
    }
    

    相关文章

      网友评论

          本文标题:poj1013 枚举(称硬币)

          本文链接:https://www.haomeiwen.com/subject/suxxbctx.html