测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A10023. Points on Plane

编程题 普及/提高-

题目描述

On a plane are $n$ points ( $x_{i}$ , $y_{i}$ ) with integer coordinates between $0$ and $10^{6}$ . The distance between the two points with numbers $a$ and $b$ is said to be the following value: ![](/uploads/acgo/image/442ffde62a117517_0d8d24535487.jpeg) (the distance calculated by such formula is called Manhattan distance).

We call a hamiltonian path to be some permutation $p_{i}$ of numbers from $1$ to $n$ . We say that the length of this path is value ![](/uploads/acgo/image/0a556b8a6feb4b72_e866652f3c36.jpeg).

Find some hamiltonian path with a length of no more than $25×10^{8}$ . Note that you do not have to minimize the path length.

输入格式

The first line contains integer $n$ ( $1<=n<=10^{6}$ ).

The $i+1$ -th line contains the coordinates of the $i$ -th point: $x_{i}$ and $y_{i}$ ( $0<=x_{i},y_{i}<=10^{6}$ ).

It is guaranteed that no two points coincide.

输出格式

Print the permutation of numbers $p_{i}$ from $1$ to $n$ — the sought Hamiltonian path. The permutation must meet the inequality ![](/uploads/acgo/image/8b31e836f0b0529f_89ed2289f8dc.jpeg).

If there are multiple possible answers, print any of them.

It is guaranteed that the answer exists.

输入输出样例

输入 #1
5
0 7
8 10
3 4
5 0
9 12
输出 #1
4 3 1 2 5 

说明/提示

In the sample test the total distance is:

![](/uploads/acgo/image/1726f1310e61bdb7_f85c56861c3c.jpeg)

$(|5-3|+|0-4|)+(|3-0|+|4-7|)+(|0-8|+|7-10|)+(|8-9|+|10-12|)=2+4+3+3+8+3+1+2=26$
上一题 去做题 下一题