結果
問題 | No.2042 RGB Caps |
ユーザー | planes |
提出日時 | 2022-08-19 21:35:52 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 49 ms / 2,000 ms |
コード長 | 1,006 bytes |
コンパイル時間 | 1,878 ms |
コンパイル使用メモリ | 176,176 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-16 01:53:33 |
合計ジャッジ時間 | 2,996 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 16 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll =long long; #define all(v) v.begin(),v.end() #define rep(i,a,b) for(int i=a;i<b;i++) #define rrep(i,a,b) for(int i=a;i>=b;i--) int main() { ll N,K;cin>>N>>K; vector<pair<ll,char>> vec(K); for(ll i=0;i<K;i++) { ll A; char c; cin>>A>>c; A--; vec[i]=make_pair(A,c); } sort(all(vec)); vector<char> ans(N,'C'); string t="RGB"; for(ll i=0;i<K;i++) { ll A=vec[i].first; ll k=A/3; for(ll j=0;j<3;j++) { if(ans[3*k+j]==vec[i].second) break; else if(ans[3*k+j]=='C'){ ans[3*k+j]=vec[i].second; break; } } } for(ll i=0;i<N;i+=3) { for(ll j=0;j<3;j++) { for(ll h=0;h<min(3LL,N-i);h++) { if(ans[i+h]==t[j]) break; else if(ans[i+h]=='C') { ans[i+h]=t[j]; break; } } } } for(auto x:ans) cout<<x; cout<<endl; }