loj#P535. 「LibreOJ Round #6」花火

    ID: 15241 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>数据结构DP线段树决策单调性单调栈LibreOJ Round

「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

数据范围与提示

对于所有数据,满足 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