結果
問題 | No.2042 RGB Caps |
ユーザー |
|
提出日時 | 2022-08-19 21:49:35 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 47 ms / 2,000 ms |
コード長 | 1,403 bytes |
コンパイル時間 | 3,702 ms |
コンパイル使用メモリ | 235,144 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-11-16 01:55:34 |
合計ジャッジ時間 | 4,863 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 16 |
ソースコード
#include <bits/stdc++.h> using namespace std; #include <atcoder/all> using namespace atcoder; using ll = long long; using vi = vector<int>; using vvi = vector<vector<int>>; using pii = pair<int, int>; #define rep(i, n) for (int i = 0; i < (int)(n); ++i) #define repr(i, n) for (int i = (int)(n - 1); i >= 0; --i) int main() { const string str = "BRG"; int n, K; cin >> n >> K; vector<pii> p(K); rep(i, K) { int k; char c; cin >> k >> c, k--; p[i] = pii(k, (int)c % 3); } sort(p.begin(), p.end()); string ret = ""; vector<bool> mx(3, false); for (int i = 0, k = 0; i < n; i++) { if (i % 3 == 0) { rep(j, 3) mx[j] = false; } if (k < K && p[k].first == i) { int c = p[k].second; if (!mx[c]) { mx[c] = true; ret += str[c]; } else { rep(j, 3) { if (!mx[j]) { mx[j] = true; ret += str[j]; break; } } } k++; } else { rep(j, 3) { if (!mx[j]) { mx[j] = true; ret += str[j]; break; } } } } cout << ret << endl; return 0; }