题目描述
一台双端处理机的两端都能取任务。 个任务按编号 到 依次排进一个 deque<int>(队列里存编号),第 个任务的权重是 。
处理机一轮一轮执行,直到任务取空。每一轮:
- 比较当前队头任务与队尾任务的权重;
- 取权重大的那一端执行,并输出这个任务的编号;权重相同时取队头。
请按执行顺序输出全部 个编号。
输入格式
第一行一个整数 ()。
第二行 个整数 (),第 个是编号 的任务的权重。
输出格式
一行 个整数:按执行顺序输出被执行任务的编号,用空格分隔。
样例
输入:
4
3 7 2 5
输出:
4 1 2 3
第一轮队头权重 3 小于队尾 5,取队尾执行编号 4;之后队头 3 不小于队尾 2,取队头 1;接着 7 大于 2 取 2,最后取 3。
数据范围
。提示:d.front() 与 d.back() 是队头、队尾的编号,配一个数组按下标查权重即可,不必把编号和权重捆在一起存。