結果

問題 No.8 N言っちゃダメゲーム
ユーザー バカらっく
提出日時 2019-08-30 01:26:22
言語 Kotlin
(2.1.0)
結果
TLE  
実行時間 -
コード長 753 bytes
コンパイル時間 12,959 ms
コンパイル使用メモリ 438,204 KB
実行使用メモリ 149,208 KB
最終ジャッジ日時 2024-11-20 19:31:05
合計ジャッジ時間 51,752 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 4 RE * 1 TLE * 6
権限があれば一括ダウンロードができます
コンパイルメッセージ
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