結果

問題 No.154 市バス
ユーザー kenji_shioyakenji_shioya
提出日時 2016-06-26 23:05:59
言語 Java21
(openjdk 21)
結果
WA  
実行時間 -
コード長 1,654 bytes
コンパイル時間 3,640 ms
コンパイル使用メモリ 77,732 KB
実行使用メモリ 58,300 KB
最終ジャッジ日時 2024-10-13 08:36:11
合計ジャッジ時間 7,415 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 449 ms
46,436 KB
testcase_01 AC 432 ms
46,868 KB
testcase_02 AC 422 ms
47,288 KB
testcase_03 AC 451 ms
46,672 KB
testcase_04 WA -
testcase_05 AC 124 ms
41,260 KB
testcase_06 AC 116 ms
41,380 KB
testcase_07 AC 563 ms
47,728 KB
testcase_08 AC 127 ms
41,528 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.util.*;

public class Exercise129{
  public static void main (String[] args){

    Scanner sc = new Scanner(System.in);

    int n = sc.nextInt();
    for(int i = 0; i < n; i++){
      judge(sc.next());
    }

	}
  private static void judge(String s){
    char[] sa = s.toCharArray();
    if(sa.length < 3){
      impossible();
      return;
    }
    if(sa[sa.length - 1] != 'R' || sa[sa.length - 2] == 'W'){
      impossible();
      return;
    }
    int[] count = new int[3];
    boolean hasG = false;
    for(int i = sa.length - 1; i >= 0; i--){
      if(sa[i] =='R'){
        count[0]++;
      }else if(sa[i] == 'G'){
        hasG = true;
        count[1]++;
      }else if(sa[i] == 'W' && !hasG){
        impossible();
        return;
      }
    }
    if(count[0] != count[1]){
      impossible();
      return;
    }
    for(int i = sa.length - 1; i >= 0; i--){
      if(sa[i] == 'R'){
        boolean isGExist = false;
        for(int j = i - 1; j >= 0; j--){
          if(sa[j] == 'G'){
            isGExist = true;
            sa[j] = 'x';
            boolean isWExist = false;
            for(int k = j - 1; k >= 0; k--){
              if(sa[k] == 'W'){
                isWExist = true;
                sa[k] = 'x';
                break;
              }else if(k == 0 && !isWExist){
                impossible();
                return;
              }
            }
            break;
          }else if(j == 0 && !isGExist){
            impossible();
            return;
          }
        }
      }
    }
    System.out.println("possible");
  }
  private static void impossible(){
    System.out.println("impossible");
  }
}
0