結果

問題 No.1890 Many Sequences Sum Queries
ユーザー Daiki Hirabayashi
提出日時 2023-09-26 21:06:02
言語 Kotlin
(2.3.20)
コンパイル:
kotlinc _filename_ -include-runtime -d main.jar
実行:
kotlin main.jar
結果
WA  
実行時間 -
コード長 1,080 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 10,585 ms
コンパイル使用メモリ 497,640 KB
実行使用メモリ 556,640 KB
最終ジャッジ日時 2026-04-02 17:09:00
合計ジャッジ時間 19,182 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge4_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample MLE * 1
other AC * 2 WA * 23
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import java.io.PrintWriter

fun main() {
    val (n, q) = readln().split(" ").map { it.toInt() }
    val a = readln().split(" ").map { it.toInt() }
    val s = Array(q) {
        readln().toInt()
    }

    val pList = (0 until n).map { it -> (1..a[it]).toList().let {P(it.size, it.sum().toLong(), it.toIntArray()) } }
    val wholeSum = pList.sumOf { it.sum }

    val out = PrintWriter(System.out)
    for(i in 0 until q) {
        if(s[i] > wholeSum) {
            out.println(-1)
            continue
        }

        var sum = 0L
        var sizeSum = 0
        for(j in pList.indices) {
            val p = pList[j]

            sizeSum += p.size
            sum += p.sum

            if(sum == s[i].toLong()) {
                out.println(sizeSum)
                break
            } else if(sum > s[i]) {
                sizeSum -= p.size
                sum -= p.sum

                out.println(s[i] - sum + sizeSum)
                break
            }
        }
    }

    out.flush()
}

data class P(
    val size: Int,
    val sum: Long,
    val value: IntArray,
)
0