CF1477C.Nezzar and Nice Beatmap
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Nezzar loves the game osu!.
osu! is played on beatmaps, which can be seen as an array consisting of distinct points on a plane. A beatmap is called nice if for any three consecutive points A,B,C listed in order, the angle between these three points, centered at B, is strictly less than 90 degrees.
Points A,B,C on the left have angle less than 90 degrees, so they can be three consecutive points of a nice beatmap; Points A′,B′,C′ on the right have angle greater or equal to 90 degrees, so they cannot be three consecutive points of a nice beatmap.
Now Nezzar has a beatmap of n distinct points A1,A2,…,An. Nezzar would like to reorder these n points so that the resulting beatmap is nice.
Formally, you are required to find a permutation p1,p2,…,pn of integers from 1 to n, such that beatmap Ap1,Ap2,…,Apn is nice. If it is impossible, you should determine it.
Nezzar 非常喜爱游戏 osu!。
osu! 在“谱面”(beatmap)上进行,而谱面可视为平面上由若干互异点构成的一个数组。若对谱面中任意三个按顺序排列的连续点 A,B,C,以 B 为顶点所形成的夹角严格小于 90∘,则称该谱面是“优美的”(nice)。
左侧的三点 A,B,C 所成夹角小于 90∘,因此它们可以作为某个优美谱面中三个连续的点;右侧的三点 A′,B′,C′ 所成夹角大于或等于 90∘,因此它们不能作为任何优美谱面中三个连续的点。
现在 Nezzar 拥有一个包含 n 个互异点 A1,A2,…,An 的谱面。Nezzar 希望将这 n 个点重新排序,使得所得谱面是优美的。
形式化地说,你需要找出一个 1 到 n 的排列 p1,p2,…,pn,使得重排后的谱面 Ap1,Ap2,…,Apn 是优美的。若不存在这样的排列,则需判定其不可能性。
输入格式
The first line contains a single integer n (3≤n≤5000).
Then n lines follow, i-th of them contains two integers xi, yi (−109≤xi,yi≤109) — coordinates of point Ai.
It is guaranteed that all points are distinct.
第一行包含一个整数 n(3≤n≤5000)。
接下来是 n 行,其中第 i 行包含两个整数 xi、yi(−109≤xi,yi≤109),表示点 Ai 的坐标。
保证所有点互不相同。
输出格式
If there is no solution, print −1.
Otherwise, print n integers, representing a valid permutation p.
If there are multiple possible answers, you can print any.
如果没有解,输出 −1。
否则,输出 n 个整数,表示一个合法的排列 p。
如果存在多个可能的答案,输出任意一个即可。
输入输出样例
输入#1
5 0 0 5 0 4 2 2 1 3 0
输出#1
1 2 5 3 4
说明/提示
Here is the illustration for the first test:

Please note that the angle between A1, A2 and A5, centered at A2, is treated as 0 degrees. However, angle between A1, A5 and A2, centered at A5, is treated as 180 degrees.
第一个测试用例的示意图如下:

请注意:以 A2 为顶点、由 A1、A2 和 A5 构成的角被视为 0∘;而以 A5 为顶点、由 A1、A5 和 A2 构成的角被视为 180∘。
输入解题思路,AI测评打分。不知道怎么写?