题目:将给定数组分为k份,要求每个部分的最大值加起来需要是最大值,以及分的方法数
思路:要求给定最大值,必须是前 n - k个值例如 k = 3,n = 7 那么最大值就是7,6,5相加起来。
本题难点在于分的方法,相当于前n-k大的值之间的距离的积(遇到的第一个前n-k值除外)
n, k = map(int,input().split())
a = [*map(int,input().split())]
l = r = ans = 0
for i in a:
if i > n - k:
ans = ans * (r - l)%998244353 or 1
l = r
r += 1
print(n*k-k*(k-1)//2, ans)