Problem5940--数列有序的最小代价 I

5940: 数列有序的最小代价 I

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

有 $N$ 台机器重量各不相等,现在要求把这些机器按照重量排序,重量从左到右依次递增。
移动机器只能做交换操作,但交换机器要花费一定的费用,费用的大小就是交换机器重量的和。例如:$3\ 2\ 1$,交换 $1\ 2$ 后为递增排序,总的交换代价为 $1+2=3$。
这次交换有一个限制,每次交换只能交换相邻的两台机器。
给出 $N$ 台机器的重量,求将所有机器变为有序的最小代价。(机器的重量均为正整数)

Input

第一行:一个数 $N\ (2 \leq N \leq 5*10^5)$,表示机器及房间的数量。
第 $2 \sim N + 1$ 行:每行一个数,表示机器的重量 $W_i\ (1 \leq W_i \leq 10^9)$。

Output

输出最小代价。

Sample 1 Input

3
3
2
1

Sample 1 Output

12
第一次交换 $3\ 2$,代价为 $3+2=5$。这样机器的排列变为 $2\ 3\ 1$。
第二次交换 $3\ 1$,代价为 $3+1=4$。这样机器的佩列为 $2\ 1\ 3$。
第三次交换 $2\ 1$,代价为 $2+1=3$。这样机器的佩列为 $1\ 2\ 3$。
总代价为 $5+4+3=12$。

Source/Category