#2542. 牛排序

牛排序

题目描述

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

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

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

输入格式

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

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

输出格式

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

样例

输入样例

3
2
3
1

输出样例

7

提示

输入解释:

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

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

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

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