牛可乐和牛客娘正在互相出题,并且约定输出会作为对方问题的部分输入,结果同时确定。
今天,他们给对方出的题目如下:
-
问题一:在所有长度为
的排列中,分别扩展各自的无穷循环数组。任取一段长度为
的连续子数组,找出子数组中出现次数不等于最小出现次数的所有不同元素。求满足条件的元素个数的最大值,结果记为
。
-
输入:排列的长度
和连续子数组的长度
-
输出:满足条件的元素个数的最大值
-
问题二:在所有长度为
的排列中,求满足逆序对为
的排列个数,结果记为
。
-
输入:排列的长度
和逆序对的个数
-
输出:满足的排列个数
牛可乐和牛客娘想知道:对于给定的
和
,这组问题的解是什么?请你帮帮他们。
【名词解释】
长度为

的
排列:由

这

个整数、按任意顺序组成的数组(每个整数均恰好出现一次)。例如,

是一个长度为

的排列,而

和
都不是排列,因为前者存在重复元素,后者包含了超出范围的数。
无穷循环数组:将原数组无限次重复拼接得到的新数组。例如,

的无穷循环数组为

。
逆序对:对于下标

满足

且对应数字

,则称
)
构成一对逆序对。
输入描述:
一行输入两个正整数
)
,分别表示问题一的连续子数组长度、问题二的排列长度。
输出描述:
如果不存在解,直接输出
。否则在一行输出两个整数
,分别表示问题一和问题二的输出。
如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。