結果
問題 | No.2042 RGB Caps |
ユーザー |
![]() |
提出日時 | 2022-08-19 22:32:24 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,426 bytes |
コンパイル時間 | 1,708 ms |
コンパイル使用メモリ | 177,812 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-08 09:31:40 |
合計ジャッジ時間 | 3,733 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 WA * 1 |
other | AC * 1 WA * 15 |
コンパイルメッセージ
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 && g<r) { ans[now] = 'G'; now++,g++; } while(now != at && b<r) { 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 && b<g) { ans[now] = 'B'; now++,r++; } while(now != at && r<g) { ans[now] = 'R'; now++,r++; } } 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 && r<b) { ans[now] = 'R'; now++,r++; } while(now != at && g<b) { ans[now] = 'G'; now++,g++; } } if(now != at) { check = true; break; } } if(check) cout << -1 << endl; else { for(int i=0;i<n;i++) cout << ans[i] ; cout << endl; } return 0; }