結果
問題 | No.2148 ひとりUNO |
ユーザー |
![]() |
提出日時 | 2022-12-07 15:30:17 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,579 bytes |
コンパイル時間 | 5,028 ms |
コンパイル使用メモリ | 313,396 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-10-13 21:31:36 |
合計ジャッジ時間 | 7,371 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 13 WA * 26 |
ソースコード
//#include <bits/stdc++.h>#include <atcoder/all>using namespace std;using namespace atcoder;using ll = long long;#define rep(i, n) for (int i=0; i<(int)(n); ++(i))#define rep3(i, m, n) for (int i=(m); (i)<(int)(n); ++(i))#define repr(i, n) for (int i=(int)(n)-1; (i)>=0; --(i))#define rep3r(i, m, n) for (int i=(int)(n)-1; (i)>=(int)(m); --(i))#define all(x) (x).begin(), (x).end()const string tar = "BGR";int main() {int t0;cin >> t0;rep(i0, t0) {int n;cin >> n;vector<vector<bool>> cd(3, vector<bool>(n));rep(i, n) {char cti;int ci, di;cin >> cti >> di;ci = tar.find(cti);di--;cd[ci][di] = true;}vector<int> ids;rep(i, 3) if (count(all(cd[i]), true) > 0) ids.push_back(i);if ((int)(ids.size()) == 1) cout << "YES" << endl;else if ((int)(ids.size()) == 2) {bool ok = false;rep(i, n) if (cd[ids[0]][i] && cd[ids[1]][i]) {ok = true;break;}if (ok) cout << "YES" << endl;else cout << "NO" << endl;}else {vector<vector<bool>> cd2;rep(i1, 3) {rep3(j1, i1+1, 3) {vector<bool> tcd(n);rep(i, n) if (cd[i1][i] && cd[j1][i]) tcd[i] = true;cd2.push_back(tcd);}}bool ok = false;rep(i1, 3) if (count(all(cd2[i1]), true) >= 1) {rep3(j1, i1+1, 3) if (count(all(cd2[j1]), true) >= 1) {int bcnt = 0;rep(i, n) if (cd2[i1][i] || cd2[j1][i]) ++bcnt;if (bcnt >= 2) {ok = true;break;}}if (ok) break;}if (ok) cout << "YES" << endl;else cout << "NO" << endl;}}return 0;}