Codeforces Round 319 (Div. 2)
E
Points on Plane
Codeforces
未评级
原题
← D→
翻译中…

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: image (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 image.

翻译中…

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.

翻译中…

Input

翻译中…

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.

翻译中…

Output

翻译中…

Print the permutation of numbers $*p*_{*i*}$ from $1$ to $*n*$ — the sought Hamiltonian path. The permutation must meet the inequality image.

翻译中…

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

翻译中…

It is guaranteed that the answer exists.

翻译中…

Note

翻译中…

In the sample test the total distance is:

翻译中…

image

翻译中…

$(|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$

翻译中…

样例

Input #1
5
0 7
8 10
3 4
5 0
9 12
Output #1
4 3 1 2 5
InputCopy OutputCopy
题目信息
题号
577E
时间限制
2 s
内存限制
256 MB

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。