結果
問題 | No.2042 RGB Caps |
ユーザー |
![]() |
提出日時 | 2022-08-19 22:36:22 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 44 ms / 2,000 ms |
コード長 | 2,458 bytes |
コンパイル時間 | 1,600 ms |
コンパイル使用メモリ | 177,584 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-16 01:58:11 |
合計ジャッジ時間 | 2,773 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 16 |
コンパイルメッセージ
main.cpp: In function 'int main()': main.cpp:23:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17' [-Wc++17-extensions] 23 | auto [at,ct] = a[i]; | ^
ソースコード
#include <bits/stdc++.h> using namespace std; int main(){ int n,k; cin >> n >> k; vector<pair<int,char>> a(k); for(int i=0;i<k;i++){ int at; char ct; cin >> at >> ct; a[i] = make_pair(at,ct); } sort(a.begin(),a.end()); vector<char> ans(n); bool check = false; int now=0,r=0,g=0,b=0; for(int i=0;i<k;i++){ auto [at,ct] = a[i]; if(ct == 'R'){ while(r < (at+2)/3) { ans[now] = 'R'; now++,r++; } while(g<b && g<r && now != at) { ans[now] = 'G'; now++,g++; } while(b<g && b<r && now != at) { ans[now] = 'B'; now++,b++; } while(now != at) { ans[now] = 'G'; now++,g++; if(now != at){ ans[now] = 'B'; now++,b++; } } } else if(ct == 'G') { while(g < (at+2)/3) { ans[now] = 'G'; now++,g++; } while(r<b && r<g && now != at) { ans[now] = 'R'; now++,r++; } while(b<r && b<g && now != at) { ans[now] = 'B'; now++,b++; } while(now != at) { ans[now] = 'R'; now++,r++; if(now != at){ ans[now] = 'B'; now++,b++; } } } else { while(b < (at+2)/3) { ans[now] = 'B'; now++,b++; } while(r<g && r<b && now != at) { ans[now] = 'R'; now++,r++; } while(g<r && g<b && now != at) { ans[now] = 'G'; now++,g++; } while(now != at) { ans[now] = 'R'; now++,r++; if(now != at){ ans[now] = 'G'; now++,g++; } } } if(now != at) { check = true; break; } } while(now != n) ans[now++] = 'R'; if(check) cout << -1 << endl; else { for(int i=0;i<n;i++) cout << ans[i] ; cout << endl; } return 0; }