2017.07.21 P3 队列
题目描述
有 n 个人依次排队,每个人都有两个属性值 \(a_i\)、\(c_i\),\(a_i\) 是重要性值,数值越大越重要,\(c_i\) 是脸皮厚度。假如前 i - 1 人已经排好队后,第 i 个人来排队,初始时他在队尾,如果他的 \(a_i\) 大于排在他前面那位的重要性值,那么两人可以交换位置,每次交换脸皮厚度减 1,直到他前面的人的重要性值大于 \(a_i\) 或者脸皮厚度为 0 的时候(即最多交换 \(c_i\) 次),问最终 n 个人的队列次序。
输入格式
第一行一个整数 n,表示队列人数。
接下来 n 行,每行两个整数 \(a_i\), \(c_i\),表示第 i 个人的重要值和脸皮厚度。所有 \(a_i\) 是不同的。
输出格式
输出队列最终的结果。
样例1
输入
2
1 0
2 1
输出
2 1
样例2
输入
3
1 3
2 3
3 3
输出
3 2 1
样例3
输入
5
2 3
1 4
4 3
3 1
5 2
输出
3 1 5 4 2
数据范围
对于 30%的数据,1 \(\leq\) n \(\leq\) 100,1 \(\leq\) \(a_i\) \(\leq\) n, 0 \(\leq\) \(c_i\) \(\leq\) n;
对于 100%的数据,1 \(\leq\) n \(\leq\) \(10^5\),1 \(\leq\) \(a_i\) \(\leq\) n, 0 \(\leq\) \(c_i\) \(\leq\) n。
限制
2s, 256M
来源
Codeforces38G
CWOI新高二专题测试十八