結果

問題 No.380 悪の台本
ユーザー firiexpfiriexp
提出日時 2020-01-01 19:57:52
言語 Kotlin
(1.9.23)
結果
AC  
実行時間 433 ms / 1,000 ms
コード長 2,025 bytes
コンパイル時間 13,171 ms
コンパイル使用メモリ 444,424 KB
実行使用メモリ 57,448 KB
最終ジャッジ日時 2024-05-02 05:52:44
合計ジャッジ時間 17,698 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 317 ms
51,216 KB
testcase_01 AC 301 ms
51,304 KB
testcase_02 AC 297 ms
51,108 KB
testcase_03 AC 295 ms
51,072 KB
testcase_04 AC 387 ms
52,336 KB
testcase_05 AC 433 ms
57,448 KB
testcase_06 AC 429 ms
56,488 KB
testcase_07 AC 387 ms
52,584 KB
testcase_08 AC 371 ms
52,044 KB
testcase_09 AC 366 ms
52,376 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Main.kt:31:18: warning: 'toLowerCase(): String' is deprecated. Use lowercase() instead.
    var s = line.toLowerCase();
                 ^
Main.kt:51:10: warning: parameter 'args' is never used
fun main(args: Array<String>) {
         ^

ソースコード

diff #

import java.io.PrintWriter
import java.util.*

@JvmField val INPUT = System.`in`
@JvmField val OUTPUT = System.out

@JvmField val cin = INPUT.bufferedReader()
fun readLine(): String? = cin.readLine()
fun readLn() = cin.readLine()!!
@JvmField var _tokenizer: StringTokenizer = StringTokenizer("")
fun read(): String {
    while (_tokenizer.hasMoreTokens().not()) _tokenizer = StringTokenizer(cin.readLine() ?: return "", " ")
    return _tokenizer.nextToken()
}
fun readInt() = read().toInt()
fun readDouble() = read().toDouble()
fun readLong() = read().toLong()
fun readStrings(n: Int) = List(n) { read() }
fun readLines(n: Int) = List(n) { readLn() }
fun readInts(n: Int) = List(n) { read().toInt() }
fun readIntArray(n: Int) = IntArray(n) { read().toInt() }
fun readDoubles(n: Int) = List(n) { read().toDouble() }
fun readDoubleArray(n: Int) = DoubleArray(n) { read().toDouble() }
fun readLongs(n: Int) = List(n) { read().toLong() }
fun readLongArray(n: Int) = LongArray(n) { read().toLong() }

@JvmField val cout = PrintWriter(OUTPUT, false)

fun solve(line: String): Boolean {
    if(line.isEmpty()) return false
    var s = line.toLowerCase();
    for (i in 0 until 3){
        if(s.isEmpty()) return false
        if(!s.last().isLetterOrDigit()) s = s.dropLast(1)
    }
    if(s.isEmpty()) return false
    if (line.startsWith("digi ")){
        return s.endsWith("nyo") && s != "digi"
    }else if (line.startsWith("petit ")){
        return s.endsWith("nyu") && s != "nyu"
    }else if(line.startsWith("rabi ")){
        return s.length >= 5 && s.subSequence(5, s.length).any { it.isLetterOrDigit()}
    }else if(line.startsWith("gema ")){
        return s.endsWith("gema") && s != "gema"
    }else if(line.startsWith("piyo "))
        return s.endsWith("pyo") && s != "pyo"
    else return false
}


fun main(args: Array<String>) {
    var s : String?
    while (true) {
        s = readLine()
        if(s == null) break
        cout.print(if (solve(s)) "CORRECT (maybe)\n" else "WRONG!\n")
    }
    cout.flush()
}
0