atcoder#AGC031E. [AGC031E] Snuke the Phantom Thief

[AGC031E] Snuke the Phantom Thief

配点 : 13001300

問題文

とある博物館には宝石 1,2,...,N1, 2, ..., N が展示されています。 宝石 ii の置いてある場所は (xi,yi)(x_i, y_i) で、価値は viv_i です (この博物館は二次元平面として解釈できます)。

怪盗すぬけはいくつか宝石を盗みます。

宝石の盗み方には条件 1,2,...,M1, 2, ..., M があり、すべて満たさないと探偵に捕まってしまいます。 条件はそれぞれ以下の4種類のいずれかです。

  • (tit_i =L, aia_i, bib_i) : 盗んだ宝石のうち、xx 座標が aia_i 以下の宝石が bib_i 個以下
  • (tit_i =R, aia_i, bib_i) : 盗んだ宝石のうち、xx 座標が aia_i 以上の宝石が bib_i 個以下
  • (tit_i =D, aia_i, bib_i) : 盗んだ宝石のうち、yy 座標が aia_i 以下の宝石が bib_i 個以下
  • (tit_i =U, aia_i, bib_i) : 盗んだ宝石のうち、yy 座標が aia_i 以上の宝石が bib_i 個以下

怪盗すぬけが盗める宝石の価値の総和の最大値を求めてください。

制約

  • 1N801 \leq N \leq 80
  • 1xi,yi1001 \leq x_i, y_i \leq 100
  • 1vi10151 \leq v_i \leq 10^{15}
  • 1M3201 \leq M \leq 320
  • tit_iL, R, U, D のいずれか
  • 1ai1001 \leq a_i \leq 100
  • 0biN10 \leq b_i \leq N - 1
  • (xi,yi)(x_i, y_i) は互いに相違なる
  • (ti,ai)(t_i, a_i) は互いに相違なる
  • (ti,bi)(t_i, b_i) は互いに相違なる

入力

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

NN

x1x_1 y1y_1 v1v_1

x2x_2 y2y_2 v2v_2

::

xNx_N yNy_N vNv_N

MM

t1t_1 a1a_1 b1b_1

t2t_2 a2a_2 b2b_2

::

tMt_M aMa_M bMb_M

出力

怪盗すぬけが盗める宝石の価値の総和の最大値を出力せよ。

7
1 3 6
1 5 9
3 1 8
4 3 8
6 2 9
5 4 11
5 7 10
4
L 3 1
R 2 3
D 5 3
U 4 2
36

図

宝石 1,5,6,71, 5, 6, 7 を盗むと価値の総和が 3636 となります。

3
1 2 3
4 5 6
7 8 9
1
L 100 0
0
4
1 1 10
1 2 11
2 1 12
2 2 13
3
L 8 3
L 9 2
L 10 1
13
10
66 47 71040136000
65 77 74799603000
80 53 91192869000
24 34 24931901000
91 78 49867703000
68 71 46108236000
46 73 74799603000
56 63 93122668000
32 51 71030136000
51 26 70912345000
21
L 51 1
L 7 0
U 47 4
R 92 0
R 91 1
D 53 2
R 65 3
D 13 0
U 63 3
L 68 3
D 47 1
L 91 5
R 32 4
L 66 2
L 80 4
D 77 4
U 73 1
D 78 5
U 26 5
R 80 2
R 24 5
305223377000