結果

問題 No.8 N言っちゃダメゲーム
ユーザー バカらっくバカらっく
提出日時 2019-08-30 01:26:22
言語 Kotlin
(1.9.23)
結果
TLE  
実行時間 -
コード長 753 bytes
コンパイル時間 10,371 ms
コンパイル使用メモリ 434,736 KB
実行使用メモリ 109,416 KB
最終ジャッジ日時 2024-04-30 21:28:24
合計ジャッジ時間 18,179 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 266 ms
60,548 KB
testcase_01 AC 266 ms
94,956 KB
testcase_02 AC 270 ms
56,944 KB
testcase_03 TLE -
testcase_04 -- -
testcase_05 -- -
testcase_06 -- -
testcase_07 -- -
testcase_08 -- -
testcase_09 -- -
testcase_10 -- -
権限があれば一括ダウンロードができます
コンパイルメッセージ
Main.kt:1:10: warning: parameter 'args' is never used
fun main(args: Array<String>){
         ^

ソースコード

diff #

fun main(args: Array<String>){
    val gameCount = readLine()!!.toInt()
    for (i in 1..gameCount) {
        val (n,k) = readLine()!!.split(" ").map { it.toInt() }
        canWin(n,k)
    }
}

fun canWin(n:Int, k:Int) {
    dic.clear()
    val ans = if (canWinSub(0, n, k)) "Win" else "Lose"
    println(ans)
}

val dic = mutableMapOf<Int, Boolean>()
fun canWinSub(num:Int, n:Int, k:Int):Boolean {
    if(num+1>=n) {
        return false
    }
    dic[num]?.let { return it }

    var canWin = false
    for(i in Math.min(k, n - num - 1) downTo 1 step 1) {
        if(i+num >= n) {
            break
        }
        if(!canWinSub(num+i, n, k)) {
            canWin = true
            break
        }
    }
    dic[num] = canWin
    return canWin
}


0