結果

問題 No.152 貯金箱の消失
ユーザー バカらっくバカらっく
提出日時 2019-11-05 01:32:48
言語 Kotlin
(2.1.0)
結果
TLE  
実行時間 -
コード長 1,271 bytes
コンパイル時間 17,017 ms
コンパイル使用メモリ 440,484 KB
実行使用メモリ 117,580 KB
最終ジャッジ日時 2024-09-14 23:57:32
合計ジャッジ時間 21,318 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 4 TLE * 1 -- * 7
権限があれば一括ダウンロードができます
コンパイルメッセージ
Main.kt:3:10: warning: parameter 'arr' is never used
fun main(arr:Array<String>) {
         ^
Main.kt:34:21: warning: variable 'keyKey' is never used
                val keyKey = dic[key!!*k]
                    ^
Main.kt:34:37: warning: unnecessary non-null assertion (!!) on a non-null receiver of type Int
                val keyKey = dic[key!!*k]
                                    ^

ソースコード

diff #


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