UOJ Logo Universal Online Judge

UOJ

统计

有 $n$ 张扑克堆成一个栈,从上往下第 $i$ 张价值是 $V_i$,此外有花色$C_i$和点数$A_i$。

有这样一个操作,每次可以选择拿走栈中从上往下第 $1$ 张或者第 $3$ 张。

除了第一次,每次拿走一张牌时,它必须和上一张牌的"花色或点数"相等。随时可以停止拿牌。

请问如何拿牌,才能使得拿出来的牌的价值和最大。

输入格式

第一行包含一个整数 $ N $,表示牌的个数。

接下来 $ N $ 行,第 $ i $ 行包含三个整数 $ C_i $,$ A_i $ 和 $ V_i $,表示从上往下第 $ i $ 张花色是 $ C_i $,点数是 $ A_i $,价值是 $ V_i $。

输出格式

输出一个整数表示最大价值和。

样例输入

5
1 3 2
4 2 9
1 4 6
2 3 3
2 2 1

样例输出

15

数据范围

  • sub1(10pts):$n\leq 20$
  • sub2(20pts):$n\leq 100$
  • sub3(30pts):$n\leq 500$
  • sub4(40pts):$n\leq 1919$

$C_i,A_i\in[1,n];V_i\in[1,10^6]$

$2s,512MB$