Masala C

Xotira 32 MB Vaqt 1000 ms
14

Coordinates on a 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: 

\[dist(a,b) = |x_a - x_b| + |y_a - y_b|\]

 (the distance calculated by such formula is called Manhattan distance).

We call a hamiltonian path to be some permutation pi of numbers from 1 to n. We say that the length of this path is value .

\[∑ ^ {n-1} _ {i=1} dist(p_i, p_{i+1})\]

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.


Kiruvchi ma'lumotlar:

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.


 


Chiquvchi ma'lumotlar:

Print the permutation of numbers \(p_i\) from 1 to n — the sought Hamiltonian path. The permutation must meet the inequality

\[ ∑ ^ {n-1} _ {i=1} dist(p_i, p_{i+1}) <= 25 * 10^8 ​    ​\]

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

It is guaranteed that the answer exists.


Misollar
# input.txt output.txt
1
5
0 7
8 10
3 4
5 0
9 12
4 3 1 2 5
Izoh:

In the sample test the total distance is:

\[dist(4,3) + dist(3,1) + dist(1,2) + dist(2,5) =\]

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