結果

問題 No.1890 Many Sequences Sum Queries
ユーザー Daiki HirabayashiDaiki Hirabayashi
提出日時 2023-09-26 21:06:02
言語 Kotlin
(1.9.23)
結果
WA  
実行時間 -
コード長 1,080 bytes
コンパイル時間 18,098 ms
コンパイル使用メモリ 424,308 KB
実行使用メモリ 62,088 KB
最終ジャッジ日時 2023-09-26 21:06:35
合計ジャッジ時間 30,528 ms
ジャッジサーバーID
(参考情報)
judge12 / judge14
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 WA -
testcase_01 WA -
testcase_02 WA -
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
testcase_11 WA -
testcase_12 WA -
testcase_13 WA -
testcase_14 WA -
testcase_15 WA -
testcase_16 AC 318 ms
53,060 KB
testcase_17 AC 295 ms
52,968 KB
testcase_18 WA -
testcase_19 WA -
testcase_20 WA -
testcase_21 WA -
testcase_22 WA -
testcase_23 WA -
testcase_24 WA -
testcase_25 AC 293 ms
53,056 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

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