#P2594. 最佳策略【STEMA 2021年3月中高级 c++】
最佳策略【STEMA 2021年3月中高级 c++】
问题说明
有n 个小朋友排成一排,现在需要按身高从低到高的顺序进行排列。排序方式为:如果位置相邻的两个小朋友不符合从低到高的顺序,就交换这两个小朋友的位置。且每个小朋友都有一个不高兴的数值,开始的时候,所有小朋友的不高兴值为0。如果某个小朋友第一次被交换,则他的不高兴值加1,如果第二次被交换,则他的不高兴值加2,如果第三次被交换,则他的不高兴值加3,依此类推。
假如:一个小朋友被交换了3次,他的不高兴值为6(1+2+3)。
如果让所有小朋友都按从低到高的顺序排好队,那么所有小朋友的不高兴值的总和的最小值是多少(也就是交换次数最少,不高兴值得总和最小)。
注意:
1.如果有两个小朋友身高一样,谁在谁前无所谓(不需要交换);
2.每次交换的两个小朋友都需要增加不高兴值。
输入格式
第一行输入一个正整数n (2<n<51)表示小朋友的数量
第二行输入n个正整数(每个正整数<160),分别表示n个小朋友的身高,正整数之间以一个空格隔开
输出格式
输出所有小朋友的不高兴值的总和的最小值。3
130 115 98
9