結果
| 問題 |
No.154 市バス
|
| コンテスト | |
| ユーザー |
HaraTakashi
|
| 提出日時 | 2022-01-30 17:44:38 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,970 bytes |
| コンパイル時間 | 2,598 ms |
| コンパイル使用メモリ | 192,536 KB |
| 最終ジャッジ日時 | 2025-01-27 17:55:20 |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 1 |
| other | AC * 6 WA * 2 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using P = pair<int, int>;
using T = tuple<int, int, int>;
#define al(a) a.begin(), a.end()
#define ral(a) a.rbegin(), a.rend()
#define sz(a) (int)a.size()
#define rep(i, n) for (int i = 0; i < (n); ++i)
#define rrep(i, n) for (int i = 1; i <= (n); ++i)
#define drep(i, n) for (int i = (n)-1; i >= 0; --i)
#define db(a, b) cout << #a << ": " << a << " " << #b << ": " << b << endl;
bool solve() {
string s;
cin >> s;
int n = sz(s);
int r = 0, g = 0, w = 0;
drep(i, n) {
if (s[i] == 'R') r++;
if (s[i] == 'G') {
if (r) {
r--;
g++;
}
else
return false;
}
if (s[i] == 'W') {
if (g) {
g--;
w++;
}
else if (w)
w++;
else
return false;
}
}
if (!r || !g) return true;
return false;
}
int main() {
int t;
cin >> t;
rep(ti, t) {
if (solve())
cout << "possible\n";
else
cout << "impossible\n";
}
}
// int main() {
// int t;
// cin >> t;
// rep(ti, t) {
// string s;
// cin >> s;
// int n = sz(s);
// bool ok = true;
// bool preW = false;
// int w = 0;
// int g = 0, r = 0;
// drep(i, n) {
// if (s[i] == 'W') {
// if (!g || !r) ok = false;
// preW = true;
// w++;
// }
// else {
// if (preW) {
// g = min(1, g - w);
// r = min(1, r - w);
// // g--, r--;
// preW = false;
// }
// if (s[i] == 'G') {
// g++;
// if (g > r) ok = false;
// }
// if (s[i] == 'R') { r++; }
// }
// }
// if (preW) {
// g = min(0, g - w);
// r = min(0, r - w);
// // g--, r--;
// preW = false;
// }
// if (g || r) ok = false;
// if (ok)
// cout << "possible\n";
// else
// cout << "impossible\n";
// }
// return 0;
// }
HaraTakashi