#NOI19992B. 最优连通子集

最优连通子集

Description

众所周知,我们可以通过直角坐标系把平面上的任何一个点 PP 用一个有序数对 (x,y)(x,y) 来唯一表示,如果 x,yx,y 都是整数,我们就把点 PP 称为整点,否则点 PP 称为非整点。我们把平面上所有整点构成的集合记为 WW

定义 1 :两个整点 P1(x1,y1),P2(x2,y2)P_1(x_1,y_1),P_2(x_2,y_2),若 x1x2+y1y2=1|x_1-x_2|+|y_1-y_2|=1,则称 P1,P2P_1,P_2 相邻,记作 P1P_1~P2P_2 ,否则称 P1,P2P_1,P_2 不相邻。

定义 2 :设点集 SSWW 的一个有限子集,即 SS={P1,P2,,Pn}\{P_1,P_2,…,P_n\} (n1)(n \ge 1),其中 Pi(1in)P_i (1 \le i \le n) 属于 WW,我们把 SS 称为整点集。

定义 3 :设 SS 是一个整点集,若点 RR,TT 属于 SS ,且存在一个有限的点序列 Q1,Q2,,QkQ_1,Q_2,…,Q_k 满足:

  1. QiQ_i 属于 SS1ik 1 \le i \le k );
  2. Q1Q_1 = RR,QkQ_k = TT;
  3. QiQ_i~Qi+1(1ik1)Q_{i+1} (1 \le i \le k-1),即 QiQ_iQi+1Q_{i+1} 相邻;
  4. 对于任何 1ijk1 \le i \le j \le kQiQjQ_i≠Q_j;

我们则称点 RR 与点 TT 在整点集 SS 上连通,把点序列 Q1,Q2,,QkQ_1,Q_2,…,Q_k 称为整点集 SS 中连接点 RR 与点 TT 的一条道路。

定义 4 :若整点集 VV 满足:对于 VV 中的任何两个整点, VV 中有且仅有一条连接这两点的道路,则 VV 称为单整点集。

定义 5 :对于平面上的每一个整点,我们可以赋予它一个整数,作为该点的权,于是我们把一个整点集中所有点的权的总和称为该整点集的权和。

我们希望对于给定的一个单整点集 VV ,求出一个 VV 的最优连通子集 BB ,满足:

  1. BBVV 的子集
  2. 对于 BB 中的任何两个整点,在 BB 中连通;
  3. BB 是满足条件 (1) 和 (2) 的所有整点集中权和最大的。

Format

Input

第1行是一个整数N,表示单整点集V中点的个数; 以下N行中,第i行(1<=i<=N)有三个整数,XiX_i ,YiY_i ,CiC_i依次表示第i个点的横坐标,纵坐标和权。同一行相邻两数之间用一个空格分隔。

Output

仅一个整数,表示所求最优连通集的权和。

Samples

5
0 0 –2
0 1 1
1 0 1
0 –1 1
-1 0 1
2

Limitation

参数约定

2<=N<=1000 -10610^6<=XiX_i ,YiY_i <=10610^6 -100<=CiC_i <=100