#L2586. 「APIO2018」选圆圈

「APIO2018」选圆圈

题目描述

平面上有nn 个圆 c1,c2,,cn c_1, c_2, \ldots, c_n ,按以下算法删除所有圆:

  1. 找到当前半径最大的圆(若有多个,选编号最小的),记为 cjc_j
  2. 删除 cjc_j 及所有与 cjc_j 有交集的圆(两个圆有交集指存在点同时在两圆内或圆周上)。
  3. 重复步骤 1-2,直到所有圆被删除。

当圆 cic_i 被删除时,若触发删除的圆是cj c_j,则称ci c_i cj c_j 删除。要求输出每个圆对应的删除圆编号。

输入格式

第一行包含整数 nn 1n3×105 1 \le n \le 3 \times 10^5 )。
接下来n n 行,每行包含三个整数 xi,yi,ri x_i, y_i, r_i ,表示圆 cic_i 的圆心坐标和半径(109xi,yi109 -10^9 \le x_i, y_i \le 10^9 1ri109 1 \le r_i \le 10^9 )。

输出格式

输出一行 n n 个整数a1,a2,,ana_1, a_2, \ldots, a_n ,其中 aia_i 是删除 ci c_i 的圆的编号。

样例

输入

11  
9 9 2  
13 2 1  
11 8 2  
3 3 2  
3 12 1  
12 14 1  
9 8 5  
2 8 2  
5 2 1  
14 4 2  
14 14 1  

输出

7 2 7 4 5 6 7 7 4 7 6  

数据范围与提示

子任务 数据限制
1 n5000 n \le 5000
2 n3×105n \le 3 \times 10^5 ,所有圆 yi=0 y_i = 0
3 n3×105n \le 3 \times 10^5 ,每个圆最多与一个其他圆有交集
4 n3×105n \le 3 \times 10^5,所有圆半径相同
5 n105 n \le 10^5
6 n3×105n \le 3 \times 10^5