結果

問題 No.8 N言っちゃダメゲーム
ユーザー バカらっくバカらっく
提出日時 2019-08-30 01:12:52
言語 Kotlin
(1.9.23)
結果
RE  
実行時間 -
コード長 717 bytes
コンパイル時間 12,619 ms
コンパイル使用メモリ 441,340 KB
実行使用メモリ 76,384 KB
最終ジャッジ日時 2024-04-30 21:27:55
合計ジャッジ時間 18,145 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 326 ms
56,996 KB
testcase_01 AC 329 ms
56,876 KB
testcase_02 AC 324 ms
56,868 KB
testcase_03 RE -
testcase_04 RE -
testcase_05 RE -
testcase_06 RE -
testcase_07 RE -
testcase_08 RE -
testcase_09 RE -
testcase_10 RE -
権限があれば一括ダウンロードができます
コンパイルメッセージ
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 1..k) {
        if(i+num >= n) {
            break
        }
        if(!canWinSub(num+i, n, k)) {
            canWin = true
            break
        }
    }
    dic[num] = canWin
    return canWin
}


0