結果

問題 No.152 貯金箱の消失
コンテスト
ユーザー バカらっく
提出日時 2019-11-05 01:32:48
言語 Kotlin
(2.3.20)
コンパイル:
kotlinc _filename_ -include-runtime -d main.jar
実行:
kotlin main.jar
結果
TLE  
実行時間 -
コード長 1,271 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 9,459 ms
コンパイル使用メモリ 474,080 KB
実行使用メモリ 106,984 KB
最終ジャッジ日時 2026-04-04 15:54:25
合計ジャッジ時間 19,226 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 4 TLE * 2 -- * 6
権限があれば一括ダウンロードができます
コンパイルメッセージ
Main.kt:34:37: warning: unnecessary non-null assertion (!!) on a non-null receiver of type 'Int'.
                val keyKey = dic[key!!*k]
                                    ^^

ソースコード

diff #
raw source code


fun main(arr:Array<String>) {
    val dic = mutableMapOf<Int, Int>()
    val himo = readLine()!!.toInt()
    for (i in (1..himo)) {
        if(i*2*4>himo) {
            break
        }
        dic[i*i] = i
    }
    var ans = 0
    val flag = mutableMapOf<Int, MutableMap<Int, Boolean>>()
    for(i in dic.keys) {
        for(j in dic.keys.filter { it < i }) {
            val key = i - j
            if(key > j) {
                continue
            }
            if(!dic.containsKey(key)) {
                continue
            }
            if(flag.containsKey(dic[i]!!) && flag[dic[i]!!]!!.containsKey(dic[j]!!)) {
                continue
            }
            val requireHimo = (dic[i]!! + dic[j]!! + dic[key]!!) * 4
            if(requireHimo > himo) {
                continue
            }
            ans++
            for (k in (1..himo)) {
                val keyI = dic[i]!!*k
                val keyJ = dic[j]!!*k
                val keyKey = dic[key!!*k]
                if(!flag.containsKey(keyI)) {
                    flag[keyI] = mutableMapOf()
                }
                if(requireHimo * k > himo) {
                    break
                }
                flag[keyI]!![keyJ] = true
            }
        }
    }
    println(ans)
}


0