#JR0005. 排队

    ID: 21785 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>阅读理解归并排序逆序对蒟蒻出题组

排队

当前没有测试数据。

题目背景

某一次CSP模拟赛,所有人都考砸了。黄老师 got really angry and decided 让考得好的同学先吃九号食堂

题目描述

现在由你来扮演黄老师,你拿出了成绩单,却发现你的 NN 个同学已经一窝蜂排好了队准备拿菜,可是并不是你想要的顺序。

你想到了两种解决方案:

1)每次交换相邻的两名同学

2)每次交换任意的两名同学

请问你分别至少需要交换几次才能使同学们按成绩降序排列(重复的不重要)。

输入输出

输入有两行,第一行一个整数 1<=N<=1e61<=N<=1e6 ,表示人数,第二行有 NN 个整数 0<=Ri<=4000<=Ri<=400 表示每名同学的CSP模拟成绩

输出仅一行,两个整数分别表示两种方案的交换次数,中间用一个空格分割。

说明提示

对于“1)”,使用归并排序作答,对于“2)”,答案=N-置换循环节数。

SO,what's “置换循环节”?

e.g.当前序列 [3,1,2][3,1,2] ,目标序列 [3,2,1][3,2,1] 。那么对于原 0 号元素,它目标位置也为 0 ,形成自循环;对于原 1 号元素,它目标位置为 2 ,对于原 2 号元素,它目标位置为 1,所以两者形成一个循环节。共两个循环节。