灯柱的排序
   



  问题描述:

  最近,WH市的小九华广场即将竣工。市长顾问小明提出了一项建议:在广场上树立N根高度互不相等的白玉灯柱。夜间,这些白玉灯柱逐一闪亮,由低至高,如此场景必将十分的绚丽夺目。然而,在灯柱安放完毕后,小明才发现粗心的工人并没有按照从低到高的顺序安放灯柱!由于灯柱已经树立起来,不可能全部推倒重新安放。因此,小明只能借助巨型吊车每次将两个灯柱的位置交换。

  例如,有3个灯柱初始时高度顺序是:3 1 2。可以先用吊车交换后两个灯柱的位置,得到3 2 1,再交换第一和第三个灯柱,得到最终序列1 2 3。 毕竟,用吊车交换灯柱位置可不是一件容易的事情,灯柱越高其重量越大,交换的难度也就越高。小明估算出,每一次交换的难度等于交换的两个灯柱的高度的和。而整个交换方案的难度等于每次交换难度的总和。

  例如先前的交换方案。原先3 1 2,交换后两个(难度为1+2=3),得到3 2 1,再交换第一和第三个(难度为3+1 = 4),得到1 2 3。因此,该方案的难度为3+4 =7。

  为了使交换工作尽快完成,难度最低的交换方案自然是首选了。小明虽然知道选择,冒泡,插入,归并,快速甚至堆排序。然而,在该问题面前,这些方法看起来似乎毫无用武之地!你能帮助他么?

  输入文件:sort.in

  输入文件第一行有一个数N,表示灯柱的数目。(1 ≤ N ≤ 1000)
  第二行有N个互不相同的正整数( ≤ 1000),依次描述安放后灯柱的高度。
 
  输出文件:sort.out

  输出文件有一行,一个整数表示交换方案的最低难度值。

  样例输入:sort.in

  3
  3 1 2
  
  样例输出:sort.out

  7

  

   

 
网站导航 | 关于曙光 | 联系我们 | 请提意见
Copyright © FuJian Sunshine Educational Info. Co.,Ltd.
福建曙光教育资讯有限公司 版权所有