#include #include using namespace std; int main() { string reply; int i, j, turn_num; short int num=0, turn=0; short int answer=~0, mask =~0; // ビット反転 cin >> turn_num; for (i=0; i < turn_num; i++) { turn = 0; for (j=0; j < 4; j++) { cin >> num; num = 1 << num; // 1をnumだけ左にシフト turn |= num; } cin >> reply; if (reply == "NO") answer &= ~turn; else answer &= turn; } // turnのビットを反転~させると答えに関係ない //上位ビットが全て1になる。そのためマスクで消す。 mask <<= 10; answer ^= mask; // answerとmaskで異なるビットだけを残す for (i=0; i < 10; i++) { // 最下位ビットが1のときのiが答え if (answer & 1==1) break; else answer >>= 1; // 1ビット右にシフト } cout << i << endl; return 0; }