結果

問題 No.873 バイナリ、ヤバいなり!w
コンテスト
ユーザー yukikurage_2019
提出日時 2019-09-12 15:15:56
言語 Kotlin
(2.3.10)
コンパイル:
kotlinc _filename_ -include-runtime -d main.jar
実行:
kotlin main.jar
結果
TLE  
実行時間 -
コード長 1,161 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 10,833 ms
コンパイル使用メモリ 465,852 KB
実行使用メモリ 883,896 KB
最終ジャッジ日時 2026-03-24 01:13:44
合計ジャッジ時間 54,325 ms
ジャッジサーバーID
(参考情報)
judge3_1 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample WA * 3
other WA * 25 TLE * 10 MLE * 1
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

fun main() {
    val n = readLine()!!.toInt()
    val sqrtn = Math.sqrt(n.toDouble()).toInt()
    val dp = Array(sqrtn){Array(n+1){it}}
    val memo = Array(sqrtn){Array(n+1){it}}
    for(i in 1 until sqrtn)for(j in 0 until n+1){
        dp[i][j] = 100000//inf
        var count = 0
        for(k in j downTo 0 step (i+1)*(i+1)){
            if(dp[i-1][k]+i*count<dp[i][j]){
                dp[i][j] = dp[i-1][k]+i*count
                memo[i][j] = count
            }
            count++
        }
    }
    val ansList = mutableListOf<Int>()
    var l = n
    for(i in sqrtn - 1 downTo 0){
        for(j in 0 until memo[i][l]){
            ansList += i+1
            l-=(i+1)*(i+1)
        }
    }
    var ans = ansList.filter{it%2==1}.asReversed().toMutableList()
    val even = ansList.filter{it%2==0}
    ans = ans.plus(Array(even.count()){
        if(it%2==0)even[it/2]
        else even[even.count()-(it+1)/2]
    }).toMutableList()
    println(ans)
    var suf = 0
    for(i in ans){
        for(j in 0 until i){
            print(suf)
            suf=rev(suf)
        }
        suf=rev(suf)
    }
    println("")
}
fun rev(suf:Int)=if(suf==0)1 else 0
0