问题 E: 小朋友排队

内存限制:128 MB 时间限制:1 S
题面:传统 评测方式:文本比较 上传者:
提交:26 通过:13

题目描述

$n$ 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。

每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是 $0$。

如果某个小朋友第一次被要求交换,则他的不高兴程度增加 $1$,如果第二次要求他交换,则他的不高兴程度增加 $2$(即不高兴程度为 $3$),依次类推。当要求某个小朋友第 $k$ 次交换时,他的不高兴程度增加 $k$。

请问,要让所有小朋友按从低到高排队,他们的不高兴程度之和最小是多少。

如果有两个小朋友身高一样,则他们谁站在谁前面是没有关系的。

原题:P8613 [蓝桥杯 2014 省 B] 小朋友排队 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

输入格式

输入的第一行包含一个整数 $n$,表示小朋友的个数。

第二行包含 $n$ 个整数 $H_1,H_2 \cdots H_n$,分别表示每个小朋友的身高。

输出格式

输出一行,包含一个整数,表示小朋友的不高兴程度和的最小值。

输入样例 复制

3
3 2 1

输出样例 复制

9

数据范围与提示

【样例说明】

首先交换身高为 $3$ 和 $2$ 的小朋友,再交换身高为 $3$ 和 $1$ 的小朋友,再交换身高为 $2$ 和 $1$ 的小朋友,每个小朋友的不高兴程度都是 $3$,总和为 $9$。

【数据规模与约定】

对于 $10\%$ 的数据,$1 \le n \le 10$;

对于 $30\%$ 的数据,$1 \le n \le 1000$;

对于 $50\%$ 的数据,$1 \le n \le 10000$;

对于 $100\%$ 的数据,$1 \le n \le 100000$,$0 \le H_i \le 1000000$。