#2148. [2012 安徽省] 超市排排看(market)

[2012 安徽省] 超市排排看(market)

题目描述

    经过仔细思考,卡卡西终于编程完成了 Semanda 老师布置的任务,心里可高兴了,心想:嗯,今天一开始就做了一件有意义的事情呢。卡卡西伸了一个大大的懒腰,看看时间,快 11 点了,妈妈要烧饭了,这时妈妈的声音从厨房里传来,“卡卡西,快帮妈妈去买袋糖,家里糖没啦……”,卡卡西拿了 5 美元,快步跑下楼,去了楼下的超市,从货架上找到了糖,来到收银台前准备付账,抬头一看,哎呀,只有一个收银台开放,卡卡西的前面已经排了很多人呢,都是熟悉的邻居叔叔阿姨。每个人手里的东西都不一样多,有人手里只有一瓶果汁,有人买了满满一推车物品,“天啊,这要排到什么时候啊?”,小朋友们,为了让所有人平均等待最小,卡卡西可以早点到家,你们有办法解决这个问题吗?

    在超市的收银处有 NN 位顾客在排队等着付款,他们的编号依次为 1,2N1,2,…,N。由于每个顾客所购的商品不同,因此付款时所需的等待时间也就不一样。假设给出这 NN 个人每个人单独付款所需的时间,请编程找出这 NN 个人排队的一种顺序,使得所有人平均等待时间最少。

输入格式

N+1N+1 行,第一行为正整数 NN1N500001≤N≤50000),表示排队的人数;后面 NN 行每行一个正整数,分别为这 NN 个人单独付款所需的时间(NN 个人单独付款所需的时间互不相同),时间最长为 5000050000

输出格式

NN 行,依次输出排好序的顾客编号(第一行输出的编号表示最先付款的顾客编号,…,第 NN 行输出的编号为最后付款的顾客编号)

样例

输入#1

3
7
4
6

输出#1

2
3
1

数据范围

70% 的数据 1N10001≤N≤1000

100% 的数据 1N500001≤N≤50000