问题 1978 --超市排排看(market)

1978: 超市排排看(market)

题目描述

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

输入

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

输出

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

样例输入输出

输入#1 复制
3
7
4
6
输出#1 复制
2
3
1

提示

70%的数据 1≤N≤1000
100%的数据 1≤N≤50000

序号 标题 作者 发表时间 费用 订购数 操作