1. paizaラーニングトップ
  2. レベルアップ問題集
  3. クエリメニュー(言語選択)
  4. 問題一覧 C++編
  5. 累積和 C++編

クエリメニューのサムネイル
累積和 C++編(paizaランク C 相当)

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

問題

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

長さ N の数列 A と、K 個の整数 Q_1 ... Q_K が与えられるので、各整数 Q_i (1 ≦ i ≦ K) について A_1 ... A_{Q_i} の和を求めてください。

入力される値

N K
A_1
...
A_N
Q_1
...
Q_K


・1 行目では、配列 A の要素数 N と与えられる整数の数 K が与えられます。
・続く N 行では、配列 A の要素が A_1 から順に与えられます。
・続く K 行では、整数 Q_1 ... Q_K が与えられます。


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

ans_1
...
ans_K


・i 行目に A_1 ... A_{Q_i} の和 ans_i (1 ≦ i ≦ K)を出力してください。
・また、出力の末尾には改行を入れてください。

条件

・1 ≦ N , K ≦ 100,000
・-100 ≦ A_i ≦ 100 (1 ≦ i ≦ N)
・1 ≦ Q_i ≦ N (1 ≦ i ≦ K)

入力例1

3 1
69
12
28
3

出力例1

109

入力例2

10 3
45
74
-94
68
-63
19
-47
-69
38
60
9
5
5

出力例2

-29
30
30

問題一覧へ戻る

ページの先頭へ戻る