結果

問題 No.154 市バス
コンテスト
ユーザー rutilicus
提出日時 2020-12-17 19:05:07
言語 Kotlin
(2.3.20)
コンパイル:
kotlinc _filename_ -include-runtime -d main.jar
実行:
kotlin main.jar
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,420 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 6,524 ms
コンパイル使用メモリ 440,644 KB
最終ジャッジ日時 2026-04-09 15:07:37
合計ジャッジ時間 7,221 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
Main.kt:56:17: error: 'fun StringBuilder.appendln(value: String?): StringBuilder' is deprecated. Use appendLine instead. Note that the new method always appends the line feed character '\n' regardless of the system line separator.
        builder.appendln(if (ok) "possible" else "impossible")
                ^^^^^^^^

ソースコード

diff #
raw source code

fun main() {
    val builder = StringBuilder()

    val t = readInputLine().toInt()

    repeat(t) {
        val input = readInputLine()
        var ok = true
        var rCnt = 0
        var gCnt = 0
        var wCnt = 0

        input.forEach {
            when(it) {
                'G' -> {
                    gCnt++
                    if (gCnt > wCnt) {
                        ok = false
                    }
                }
                'R' -> {
                    rCnt++
                    if (rCnt > wCnt || rCnt > gCnt) {
                        ok = false
                    }
                }
                else -> {
                    wCnt++
                }
            }
        }

        gCnt = 0
        rCnt = 0
        wCnt = 0

        input.reversed().forEach {
            when(it) {
                'G' -> {
                    gCnt++
                    if (gCnt > rCnt) {
                        ok = false
                    }
                }
                'R' -> {
                    rCnt++
                }
                else -> {
                    wCnt++
                    if (gCnt == 0 || wCnt == 0) {
                        ok = false
                    }
                }
            }
        }
        builder.appendln(if (ok) "possible" else "impossible")
    }

    print(builder.toString())
}

fun readInputLine(): String {
    return readLine()!!
}
0