#P50108. 「LibreOJ Round #6」花火

「LibreOJ Round #6」花火

题目描述

「Hanabi, hanabi……」

一听说祭典上没有烟火,Karen 一脸沮丧。

「有的哦…… 虽然比不上大型烟花就是了。」

还好 Shinobu 早有准备,Alice、Ayaya、Karen、Shinobu、Yoko 五人又能继续愉快地玩耍啦!

「噢……!不是有放上天的烟花嘛!」Karen 兴奋地喊道。

「啊等等……」Yoko 惊呼。Karen 手持点燃引信的烟花,「嗯??」

Yoko 最希望见到的是排列优美的烟火,当然不会放过这个机会…… 不过时间似乎已经不多了。

nn 个烟火排成一排,从左到右高度分别为 h1,h2,,hnh_1,h_2,\cdots,h_n,这些高度两两不同。

每次 Yoko 可以选择两个相邻的烟火交换,这样的交换可以进行任意多次。

每次 Yoko 还可以选择两个不相邻的烟火交换,但这样的交换至多进行一次。

你的任务是帮助 Yoko 用最少次数的交换,使这些烟火从左到右的高度递增。

输入格式

第一行包含一个正整数 nn

第二行包含 nn 个正整数 h1,h2,,hnh_1,h_2,\cdots,h_n,相邻整数之间用一个空格隔开。

输出格式

输出一个整数,表示最少的交换次数。

样例

5
3 5 4 1 2
5

一开始,55 个烟火的高度依次为 3,5,4,1,23,5,4,1,2

11 次,交换第 44 根烟火和第 55 根烟火,交换后烟火的高度依次为 3,5,4,2,13,5,4,2,1

22 次,交换第 33 根烟火和第 44 根烟火,交换后烟火的高度依次为 3,5,2,4,13,5,2,4,1

33 次,交换第 11 根烟火和第 22 根烟火,交换后烟火的高度依次为 5,3,2,4,15,3,2,4,1

44 次,交换第 22 根烟火和第 33 根烟火,交换后烟火的高度依次为 5,2,3,4,15,2,3,4,1

55 次,交换第 11 根烟火和第 55 根烟火,交换后烟火的高度依次为 1,2,3,4,51,2,3,4,5

可以证明这是交换次数最少的方案。

数据范围与提示

对于所有数据,满足 1n300,0001\le n\le 300,0001hin1\le h_i\le nhih_i 互不相同。

Subtask # 分值 nn
1 66 4\le 4
2 1111 8\le 8
3 1616 100\le 100
4 88 300\le 300
5 1313 700\le 700
6 77 2,000\le 2,000
7 66 6,000\le 6,000
8 1414 60,000\le 60,000
9 1919 300,000\le 300,000