1. paizaラーニングトップ
  2. レベルアップ問題集
  3. Aランクレベルアップメニュー(言語選択)
  4. 問題一覧 Clojure(Beta)編
  5. 区間への足し算 Clojure(Beta)編

Aランクレベルアップメニューのアイコン
区間への足し算 Clojure(Beta)編(paizaランク A 相当)

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

問題

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

数列 A の要素数 N とクエリの数 M , 数列 A の要素 A_1, A_2 ... A_N が与えられます。
続けて、クエリに用いる数 l_i, u_i, a_i が与えられます。

各クエリについて次の処理を行ってください。

・ 要素番号が、l_i 以上、u_i 以下の全ての A の要素に、a_i を足す。

全てのクエリについて処理を終えた後の A の各要素を出力してください。

入力される値

N M                
A_1 A_2 ... A_N
l_1 u_1 a_1
...
l_M u_M a_M


・ 1 行目には、数列 A の要素数 N と、条件に使う整数 M が与えられます。
・ 2 行目には、数列 A の各要素 A_1, A_2 ... A_N が与えられます。
・ 続く M 行には、各クエリの処理に用いる整数 l_i, u_i, a_i (1 ≦ i ≦ M) が与えられます。


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

N 行の出力

・ 処理を終えた後の数列 A の要素を N 行で出力してください。

A_1    
...
A_N

条件

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

・ 1 ≦ N, M ≦ 10 ^ 5
・ -100 ≦ A_i, a_i ≦ 100
・ 1 ≦ l_i ≦ u_i ≦ N

入力例1

10 5
1 2 3 4 5 6 7 8 9 10
1 6 10
8 10 5
2 8 3
3 7 -5
3 6 1

出力例1

11
15
12
13
14
15
5
16
14
15

入力例2

1 1
1
1 1 100

出力例2

101

問題一覧へ戻る

ページの先頭へ戻る