CF576C.Points on Plane

提高+/省选-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

On a plane are n points (x__i, y__i) with integer coordinates between 0 and 106. The distance between the two points with numbers a and b is said to be the following value: (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 .

Find some hamiltonian path with a length of no more than 25 × 108. Note that you do not have to minimize the path length.

平面上有 nn 个点 (xi,yi)(x_i, y_i),其坐标均为介于 00 到 10610^6 之间的整数。编号为 aa 和 bb 的两点之间的距离定义为如下值:

(按此公式计算出的距离称为曼哈顿距离)。

我们称哈密顿路径为 11 到 nn 的某个排列 pip_i。该路径的长度定义为:

请找出一条长度不超过 25×10825 \times 10^8 的哈密顿路径。注意:你无需最小化路径长度。

输入格式

The first line contains integer n (1 ≤ n ≤ 106).

The i + 1-th line contains the coordinates of the i-th point: x__i and y__i (0 ≤ x__i, y__i ≤ 106).

It is guaranteed that no two points coincide.

第一行包含一个整数 nn(1≤n≤1061 \leq n \leq 10^6)。

第 i+1i + 1 行包含第 ii 个点的坐标:xix_i 和 yiy_i(0≤xi,yi≤1060 \leq x_i, y_i \leq 10^6)。

保证任意两个点不重合。

输出格式

Print the permutation of numbers p__i from 1 to n — the sought Hamiltonian path. The permutation must meet the inequality .

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

It is guaranteed that the answer exists.

输出从 1 到 n 的数字 p__i 的一个排列——即所求的哈密顿路径。该排列必须满足不等式 。

若存在多个可能的答案,输出其中任意一个即可。

保证答案一定存在。

输入输出样例

  • 输入#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:

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

在样例测试中,总距离为:

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

输入解题思路,AI测评打分。不知道怎么写?

首页