結果
| 問題 | No.154 市バス |
| コンテスト | |
| ユーザー |
ふーらくたる
|
| 提出日時 | 2016-07-04 22:32:21 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 24 ms / 2,000 ms |
| コード長 | 996 bytes |
| コンパイル時間 | 464 ms |
| コンパイル使用メモリ | 54,908 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-10-13 08:37:12 |
| 合計ジャッジ時間 | 1,172 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 8 |
ソースコード
#include <iostream>
using namespace std;
int T;
string S;
/*
* ありえないケースは
* (1) w_cnt < g_cnt
* (2) w_cnt < r_cnt
* (3) g_cnt < r_cnt
* (4) 全て終わったあとに g_cnt != r_cnt
* (5) 最後のWが出てから一度もGが出てきていない場合
*/
void Solve() {
int w_cnt = 0, g_cnt = 0, r_cnt = 0;
bool not_terminated = false;
for (int i = 0; i < S.size(); i++) {
if (S[i] == 'W') {
w_cnt++;
not_terminated = true;
} else if (S[i] == 'G') {
g_cnt++;
not_terminated = false;
} else {
r_cnt++;
}
if (w_cnt < g_cnt || w_cnt < r_cnt || g_cnt < r_cnt) {
cout << "impossible" << endl;
return;
}
}
if (!not_terminated && g_cnt == r_cnt) cout << "possible" << endl;
else cout << "impossible" << endl;
}
int main() {
cin >> T;
while (T--) {
cin >> S;
Solve();
}
return 0;
}
ふーらくたる