結果

問題 No.154 市バス
ユーザー mizzsigmizzsig
提出日時 2018-02-04 15:05:29
言語 PHP
(8.3.4)
結果
TLE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,788 bytes
コンパイル時間 195 ms
コンパイル使用メモリ 30,940 KB
実行使用メモリ 31,540 KB
最終ジャッジ日時 2024-04-21 10:31:53
合計ジャッジ時間 8,605 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 983 ms
31,228 KB
testcase_01 AC 986 ms
31,232 KB
testcase_02 AC 985 ms
31,392 KB
testcase_03 AC 825 ms
31,096 KB
testcase_04 AC 932 ms
31,408 KB
testcase_05 AC 37 ms
31,540 KB
testcase_06 AC 39 ms
31,512 KB
testcase_07 TLE -
testcase_08 AC 39 ms
31,128 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
No syntax errors detected in Main.php

ソースコード

diff #

<?php
  $n = trim(fgets(STDIN));

  for ($i = 0; $i < $n; $i++) {
    $str = trim(fgets(STDIN));

    $length = strlen($str);

    $isPossible = true;
    $sum['W'] = 0;
    $sum['G'] = 0;
    // 各バスの状態を保存する
    $bus = [];

    // それぞれのテストケースを確認
    for ($l = 0; $l < $length; $l++) {
      switch ($str[$l]) {
        case 'W':
          $sum['W']++;
          $busFlag = true;
          foreach ($bus as $value) {
            if ($value == 'W') {
              $busFlag = false;
              break;
            }
          }
          // 既存のバスがない or 色が変わっているので新たに追加
          if ($busFlag) $bus[] = 'W';
          break;
        case 'G':
          $sum['G']++;
          $busFlag = false;
          foreach ($bus as $key => $value) {
            if ($value == 'W') {
              $busFlag = true;
              $bus[$key] = 'G';
              break;
            }
          }
          if (!$busFlag) {
            if ($sum['W'] >= $sum['G']) {
                $bus[] = 'G';
            } else {
                $isPossible = false;
            }
          }
          break;
        case 'R':
          $busFlag = false;
          foreach ($bus as $key => $value) {
            if ($value == 'G') {
              $busFlag = true;
              $bus[$key] = 'R';
              break;
            }
          }
          if (!$busFlag) {
            $isPossible = false;
          }
          break;
      }
      if (!$isPossible) {
          break;
      }
    }
    foreach ($bus as $value) {
      if ($value != 'R') {
        $isPossible = false;
        break;
      }
    }
    if ($isPossible) {
      echo 'possible' . "\n";
    } else {
      echo 'impossible' . "\n";
    }
  }
0