配点: 100 点 / 実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: 10
問題概要
4種類の牡蠣1, 2, 3, 4 があり、このうちちょうど1種類の牡蠣を食べるとお腹を壊してしまう。
高橋君が牡蠣1, 2を食べ、青木君が牡蠣1, 3を食べた。二人がこれによってお腹を壊したかどうかの情報が二つの文字列 によって与えられる。具体的には、
sick
あるとき高橋君がお腹を壊したことを、fine
であるときお腹を壊さなかったことを表す( についても同様)。
与えられた情報をもとに、どの種類の牡蠣を食べるとお腹を壊すか判定せよ。
制約
- 問題文の通り。
考察
高橋君と青木君のお腹の状況は全4パターンあり、お腹を壊す牡蠣はそれぞれ以下のように対応する。
- 二人ともお腹を壊した : 二人が共通して食べた牡蠣1
- 高橋君がお腹を壊した : 高橋君のみが食べた牡蠣2
- 青木君がお腹を壊した : 青木君のみが食べた牡蠣3
- 二人ともお腹を壊さなかった : 二人とも食べていない牡蠣4
あとはこれを条件分岐で場合分けすればよい。
実装例
#include <bits/stdc++.h> using namespace std; // ======================================== // int main() { string S1, S2; cin >> S1 >> S2; if (S1 == "sick") { if (S2 == "sick") { cout << 1 << endl; } else { cout << 2 << endl; } } else { if (S2 == "sick") { cout << 3 << endl; } else { cout << 4 << endl; } } return 0; }
実装時間: 5分以内
コメント
ABCのA問題でこういう推理パズル系(?)の問題が出るのは久しぶりかも。