题库练习 Points on Plane
← 上一题 下一题 →

A10023 | Points on Plane

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

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 
C++ 编辑器
输入
输出