結果

問題 No.154 市バス
コンテスト
ユーザー konjo_p
提出日時 2016-06-12 00:02:51
言語 C++11
(gcc 15.2.0 + boost 1.89.0)
コンパイル:
g++-15 -O2 -lm -std=gnu++11 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
AC  
実行時間 18 ms / 2,000 ms
コード長 682 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 567 ms
コンパイル使用メモリ 76,728 KB
実行使用メモリ 6,400 KB
最終ジャッジ日時 2026-04-30 17:21:58
合計ジャッジ時間 1,286 ms
ジャッジサーバーID
(参考情報)
judge2_1 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 8
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main() {
	int T;
	cin >> T;
	for(int t = 0; t < T; t++) {
		string s;
		const string ok = "possible", ng = "impossible";
		cin >> s;
		reverse(s.begin(), s.end());
		int G, R, W;
		bool flg = true;
		bool fr = false, fg = false;
		R = G = W = 0;
		for(int i = 0; i < s.size(); i++) {
			if(s[i] == 'R') {
				R++;
				fr = true;
			}
			else if(s[i] == 'G') {
				G++;
				R--;
				if(R < 0) flg = false;
				fg = true;
			}
			else {
				if(!fr || !fg) flg = false;
				W++;
				if(G > 0) G--;
			}
		}
		if(R || G) flg = false;
		if(flg)
			cout << ok << endl;
		else
			cout << ng << endl;
	}
}
0