#P5648. 牛排序

牛排序

题目描述

农夫JOHN{JOHN}准备把他的 N{N(}1<=N<=10,000{1 <= N <= 10,000)}头牛排队以便于行动。因为脾气大的牛有可能会捣乱,JOHN{JOHN}想把牛按脾气的大小排序。

每一头牛的脾气都是一个在1{1}100{100,}000{000}之间的整数并且没有两头牛的脾气值相同。在排序过程中,JOHN{JOHN }可以交换任意两头牛的位置。因为脾 气大的牛不好移动,JOHN{JOHN}需要X+Y{X+Y}秒来交换脾气值为X{X}Y{Y}的两头牛。

请帮JOHN{JOHN}计算把所有牛排好序的最短时间。

输入格式

1{1}行: 一个数, N{N}

2...N+1{2...N+1}行: 每行一个数,第i+1{i+1}行是第i{i}头牛的脾气值。

输出格式

1{1}行: 一个数,把所有牛排好序的最短时间。

样例

输入样例

3
2
3
1

输出样例

7

提示

输入解释:

队列里有三头牛,脾气分别为 2{2,}3{3,} 1{1}

输出解释: 231:{2 3 1 : }初始序列

213:{2 1 3 : }交换脾气为3{3}1{1}的牛({(}时间=1+3=4).{=1+3=4). }

123:{1 2 3 : }交换脾气为1{1}2{2}的牛({(}时间=2+1=3).{=2+1=3). }