atcoder#DPW. Intervals

Intervals

配点 : 100100

問題文

長さ NN01 からなる文字列を考えます。 この文字列のスコアを次のように計算します。

  • ii (1iM1 \leq i \leq M) について、lil_i 文字目から rir_i 文字目までに 1 がひとつ以上含まれるならば、スコアに aia_i を加算する。

文字列のスコアの最大値を求めてください。

制約

  • 入力はすべて整数である。
  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1M2×1051 \leq M \leq 2 \times 10^5
  • 1liriN1 \leq l_i \leq r_i \leq N
  • ai109|a_i| \leq 10^9

入力

入力は以下の形式で標準入力から与えられる。

NN MM

l1l_1 r1r_1 a1a_1

l2l_2 r2r_2 a2a_2

::

lMl_M rMr_M aMa_M

出力

文字列のスコアの最大値を出力せよ。

5 3
1 3 10
2 4 -10
3 5 10
20

10001 のスコアは a1+a3=10+10=20a_1 + a_3 = 10 + 10 = 20 となります。

3 4
1 3 100
1 1 -10
2 2 -20
3 3 -30
90

100 のスコアは a1+a2=100+(10)=90a_1 + a_2 = 100 + (-10) = 90 となります。

1 1
1 1 -10
0

0 のスコアは 00 となります。

1 5
1 1 1000000000
1 1 1000000000
1 1 1000000000
1 1 1000000000
1 1 1000000000
5000000000

答えは 32-bit 整数型に収まらない場合があります。

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

例えば、101000 のスコアは $a_2 + a_3 + a_4 + a_5 + a_7 = 10 + (-8) + 5 + 9 + (-6) = 10$ となります。