atcoder#ARC089B. [ABC086D] Checker

[ABC086D] Checker

配点 : 500500

問題文

シカのAtCoDeerくんは無限に広がる二次元グリッドを一辺が KK の市松模様で塗ろうと考えています。 ただし、一辺が KK の市松模様とは、各マスが白か黒で塗られたパターンであって、各色の各連結成分が KK ×\times KK の正方形となっているようなものです。 例えば以下は一辺が 33 の市松模様の例です。

cba927b2484fad94fb5ff7473e9aadef.png

AtCoDeerくんは NN 個の希望を持っています。 ii 個目の希望は、 xi,yi,cix_i,y_i,c_i で表されます。 これは、cic_iB ならマス (xi,yi)(x_i,y_i) を黒で塗る、 W なら白で塗ることを意味しています。 同時に最大でいくつの希望を叶えることが出来るか答えてください。

制約

  • 11 \leq NN \leq 10510^5
  • 11 \leq KK \leq 10001000
  • 00 \leq xix_i \leq 10910^9
  • 00 \leq yiy_i \leq 10910^9
  • ii \neq jj なら (xi,yi)(x_i,y_i) \neq (xj,yj)(x_j,y_j)
  • cic_iB または W
  • N,K,xi,yiN,K,x_i,y_i は整数

入力

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

NN KK

x1x_1 y1y_1 c1c_1

x2x_2 y2y_2 c2c_2

::

xNx_N yNy_N cNc_N

出力

同時に叶えられる希望の個数の最大値を出力せよ。

4 3
0 1 W
1 2 W
5 3 B
5 4 B
4

上であげた例のように塗ればすべての希望を同時に叶えることができます。

2 1000
0 0 B
0 1 W
2
6 2
1 2 B
2 1 W
2 2 B
1 0 B
0 6 W
4 5 W
4