Logo Universal Online Judge

UOJ

时间限制:1 s 空间限制:512 MB
统计

罪犯列队 (criminallineup)

题目描述

监狱里有 n 个罪犯,每个罪犯有 体力值 hi 和攻击力 di

三个罪犯 (i,j,k) 从左至右排在一起时,他们的破坏度为 hidj+hjdk+hkdi,记作 f(i,j,k)

由于各种原因,神秘人认为破坏度越高越好。

神秘人认为有序三元组 (i,j,k) 是好的,当且仅当其满足 f(i,j,k)f(k,j,i)

神秘人要试图把 n 个罪犯排成一行,使得对于所有 x,y,z 满足 x,y,z 从左至右排列且 xy 相邻 yz 相邻, x,y,z 是好的。请帮助神秘人完成任务。

输入格式

第一行一个正整数 n

接下来 n 行,每行两个正整数 hi,di ,含义如题面所述。

输出格式

一行 n 个数,从左到右为罪犯的排列顺序。如果没有合法排列,输出 1

样例

样例输入 1
3
1 5
2 6
3 4
样例输出 1
3 2 1
样例输入 2
4
2 3
4 4
1 1
3 2
样例输出 2
3 2 1 4

数据范围与提示

子任务编号 n 1ai,bi 分值 特殊性质
1 9 10 16 数据随机生成
2 50 103 19
3 1000 103 17 数据随机生成
4 1000 109 26
5 5000 109 22

下发文件中本题目录里存在 checker.cpp ,选手可以使用 g++ checker.cpp -o checker -std=c++14 -O2 编译后在 checker的目录下调用 checker [input file] [output file] 或 ./checker [input file] [output file] (视操 作系统而定)来对自己的输出进行检查。注意若输出不符合格式则不保证其能成功运行。

down