セグメント木メニューのサムネイル
(問題 14)配列 A の先頭から K 番目までの和 Java編(paizaランク A 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

(問題)

長さ N の配列 A が与えられます。Q 個のクエリが与えられるのでそれぞれのクエリを求めてください。i (1 ≦ i ≦ Q) 番目のクエリは以下の通りです。

  • 初めて配列 A の先頭から K 番目までの和が X_i 以上になる K を求める。そのような K がなければ、-1 を出力する。
  • 入力される値

    入力は以下のフォーマットで与えられます。


    N
    A_1 A_2 ... A_N
    Q
    X_1
    X_2
    ...
    X_Q


    1 行目には 1 つの整数 N が与えられます。

    2 行目には N 個の整数 A_1,A_2,...,A_N が与えられます。

    3 行目には 1 つの整数 Q が与えられます。

    3 + i (1 ≦ i ≦ Q) 行目には 1 つの整数 X_i が与えられます。

    入力は合計 3 + Q 行からなり、入力値最終行の末尾に改行を 1 つ含みます。


    入力値最終行の末尾に改行が1つ入ります。
    文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
    期待する出力

    答えを Q 行で出力してください。

    i (1 ≦ i ≦ Q) 行目には i 番目のクエリの答えを出力してください。

    条件

    すべてのテストケースについて以下の条件を満たします。

  • 1 ≦ N ≦ 200000

  • 1 ≦ A_i ≦ 10 ^ 9 (1 ≦ i ≦ N)

  • 1 ≦ Q ≦ 200000

  • 1 ≦ X_i ≦ 10 ^ 18 (1 ≦ i ≦ Q)
  • 入力例1

    10
    1 5 7 9 10 12 3 5 1 7
    10
    1
    3
    5
    12
    14
    30
    35
    45
    55
    100

    出力例1

    1
    2
    2
    3
    4
    5
    6
    7
    10
    -1

    問題一覧へ戻る

    1. paizaラーニングトップ
    2. レベルアップ問題集
    3. セグメント木メニュー(言語選択)
    4. 問題一覧 Java編
    5. (問題 14)配列 A の先頭から K 番目までの和 Java編
    ページの先頭へ戻る