結果
| 問題 |
No.154 市バス
|
| ユーザー |
ldsyb
|
| 提出日時 | 2016-06-19 23:22:22 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,609 bytes |
| コンパイル時間 | 797 ms |
| コンパイル使用メモリ | 67,608 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-10-13 08:32:44 |
| 合計ジャッジ時間 | 2,194 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 3 WA * 5 |
ソースコード
#include <iostream>
using namespace std;
int main(){
int t;
cin >> t;
while(t--){
string s;
cin >> s;
string tmp = s;
for(int i = 0;i < tmp.size();i++) if(tmp[i] != 'W') tmp.erase(tmp.begin() + i);
if(tmp.size() == s.size()){
cout << "impossible" << endl;
continue;
}
tmp = s;
int w,g,r;
for(int i = s.size();i--;){
bool f = false;
if(s[i] == 'R'){
r = i;
for(int j = i;--j > 0;){
if(s[j] == 'G'){
g = j;
for(int k = j;--k >= 0;){
if(s[k] == 'W'){
w = k;
f = true;
j = k = 0;
}
}
}
}
}
if(f){
for(int j = r;++j < s.size();) if(s[j] != 'R') f = false;
for(int j = g;++j < s.size();) if(s[j] == 'W') f = false;
}
if(f){
s.erase(s.begin() + r);
s.erase(s.begin() + g);
s.erase(s.begin() + w);
}
}
bool flag = true;
for(int i = 0;i < s.size();i++) if(s[i] != 'W') flag = false;
//cout << (flag ? "possible" : "impossible") << endl;
s = tmp;
for(int i = s.size();i--;){
bool f = false;
if(s[i] == 'R'){
r = i;
for(int j = i;--j > 0;){
if(s[j] == 'G'){
g = j;
for(int k = j;--k >= 0;){
if(s[k] == 'W'){
w = k;
f = true;
j = k = 0;
}
}
}
}
}
if(f){
s.erase(s.begin() + r);
s.erase(s.begin() + g);
s.erase(s.begin() + w);
}
}
bool flag2 = true;
for(int i = 0;i < s.size();i++) if(s[i] != 'W') flag2 = false;
if(flag == false && flag2 == true) cout << "impossible" << endl;
else cout << (flag || flag2 ? "possible" : "impossible") << endl;
}
}
ldsyb