結果
問題 | No.197 手品 |
ユーザー |
![]() |
提出日時 | 2019-05-30 01:25:35 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,189 bytes |
コンパイル時間 | 1,374 ms |
コンパイル使用メモリ | 168,108 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-17 16:04:31 |
合計ジャッジ時間 | 2,693 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 41 WA * 2 |
ソースコード
// TODO: 解答方針不明. #include <bits/stdc++.h> using namespace std; using LL = long long; int main() { // 1. 入力情報取得. string SB, SA; LL N; cin >> SB >> N >> SA; // 手品を場合分け. // 2. o, x の 個数が変化したら, "SUCCESS". int bo = 0, ao = 0; for(int i = 0; i < 3; i++){ if(SB[i] == 'o') bo++; if(SA[i] == 'o') ao++; } if(bo != ao){ // cout << bo << " " << ao << endl; cout << "SUCCESS" << endl; return 0; } // 3. o, x の 個数が変化しない場合. // 3-1. N が 0 の 場合, SB, SA が同じなら, "FAILURE". if(N == 0){ if(SB == SA) cout << "FAILURE" << endl; else cout << "SUCCESS" << endl; return 0; } // 3-2. o が, 0 or 3個 の 場合は, "FAILURE". if(bo == 0 || bo == 3){ cout << "FAILURE" << endl; return 0; } // 3-3. o が, 1 or 2個 の 場合. // ※o, x の役割を入れ替えて考えると, 一緒に出来るはず. // [1個] // SB: oxx, xox, xxo // SA: oxx, xox, xxo // [2個] // SB: oox, oxo, xoo // SA: oox, oxo, xoo if(bo == 1 || bo == 2){ if(N > 1){ // string ans = "FAILURE"; // if(SB == SA) ans = "FAILURE"; // if(SB == "oxx" && SA == "xox") ans = "FAILURE"; // if(SB == "oxx" && SA == "xxo") ans = "FAILURE"; // if(SB == "xox" && SA == "oxx") ans = "FAILURE"; // if(SB == "xox" && SA == "xxo") ans = "FAILURE"; // if(SB == "xxo" && SA == "oxx") ans = "FAILURE"; // if(SB == "xxo" && SA == "xox") ans = "FAILURE"; cout << "FAILURE" << endl; return 0; } if(N == 1){ string ans = "FAILURE"; if(SB == "oxx" && SA == "xxo") ans = "SUCCESS"; if(SB == "xxo" && SA == "oxx") ans = "SUCCESS"; if(SB == "oox" && SA == "xoo") ans = "SUCCESS"; if(SB == "xoo" && SA == "oox") ans = "SUCCESS"; cout << ans << endl; return 0; } } // 3. 出力. return 0; }