D - 釘 (Nails) Editorial /

Time Limit: 2.5 sec / Memory Limit: 512 MiB

配点: 100

JOI くんは板に釘を刺して遊んでいる.下図のように,JOI くんは一辺 N 本の正三角形の形に釘を並べて刺した.上から a 行目 (1\leqq a\leqq N) には a 本の釘が並んでいる.そのうち左から b 本目 (1\leqq b\leqq a) の釘を (a, b) で表す.

釘を頂点とする正三角形が,「各辺が全体の正三角形の辺のいずれかと平行で,全体の正三角形と同じ向き」であるとき,この正三角形を「よい正三角形」と呼ぶ.すなわち,「よい正三角形」とは,3 本の釘 (a, b), (a + x, b), (a + x, b + x) を頂点とする正三角形のことである(ただし a, b, x1 \leqq a < N, 1 \leqq b \leqq a, 1 \leqq x \leqq N − a をみたす).

JOI くんは,輪ゴムを使って,「よい正三角形」の周りを囲うことにした.

課題

正三角形の一辺に並んでいる釘の本数 N と,JOI くんが持っている輪ゴムの数 M と,M 本の輪ゴムによる「よい正三角形」の囲い方が与えられたとき,1 本以上の輪ゴムで囲われた釘の本数を求めるプログラムを作成せよ.

制限

2 \leqq N \leqq 5000 一辺に並んでいる釘の本数
1 \leqq M \leqq 500000 \,(= 5\times 10^5) 輪ゴムの数

入力

標準入力から以下のデータを読み込め.

  • 1 行目には整数 N, M が空白を区切りとして書かれている.N は正三角形の一辺に並んでいる釘の本数を,M は JOI くんの持っている輪ゴムの数をそれぞれ表す.
  • 続く M 行は輪ゴムによる「よい正三角形」の囲い方の情報を表す.i + 1 行目 (1 \leqq i \leqq M) には整数 A_i,B_i,X_i (1\leqq A_i < N, 1\leqq B_i\leqq A_i , 1\leqq X_i \leqq N-A_i) が空白を区切りとして書かれている.これは,i 本目の輪ゴムは 3 本の釘 (A_i,B_i),(A_i+X_i,B_i),(A_i+X_i,B_i+X_i) を頂点とする「よい正三角形」を囲っていることを表す.

出力

標準出力に,1 本以上の輪ゴムに囲われている釘の本数を 1 行で出力せよ.

採点基準

採点用データのうち,配点の 30 %分については,M\leqq 10000 を満たす.


入力例 1

5 2
2 2 1
2 1 3

出力例 1

12

この例は図 2 のような「よい正三角形」の囲い方に対応している.この例において,(1, 1), (4, 4), (5, 5) 以外の 12 本の釘が 1 本以上の輪ゴムで囲われている.


Source Name

JOI 2011/2012 本選 問題4