luogu#P9307. 「DTOI-5」进行一个排的重 (Maximum Version)
「DTOI-5」进行一个排的重 (Maximum Version)
题目背景
本题与 Minimum Version 的区别是所求最值和数据范围不同。
小 L 热衷于重排数列使之规整。
题目描述
小 L 有一个长为 的序列 ,其中每一项 都是一个 pair 。
为了让 看起来规整一些,他钦定 分别均为长为 的排列。
为了对 的规整程度进行量化计算,他给出了一个权值函数 $f(a) = \displaystyle\sum_{i = 1}^n ([p_i > \max_{j = 1}^{i - 1} p_j] + [q_i > \max_{j = 1}^{i - 1} q_j])$。注意 时两个方括号都能取到值,因为我们认为 $\displaystyle\max_{j = 1}^0 p_j = \displaystyle\max_{j = 1}^0 q_j = -\infty$。
为了让 看起来更加规整,他决定分别以某种方式重排 得到 使得 最大。注意重排时必须将 视为整体。
他希望你求出 的值,以及分别有多少个 可以取到 。
由于方案数可能很大,你只需要求出结果对 取模的值。
输入格式
第一行,一个整数 ;
第二行, 个整数 ;
第三行, 个整数 。
输出格式
一行,两个整数,表示所求的值。
5
1 5 2 4 3
1 4 2 5 3
9 2
提示
【数据范围】
$$\def\or{\operatorname{or}} %\def\arrayscretch{1.5} \def\arraystretch{1.5} \begin{array}{|c|c|c|}\hline \textbf{Subtask}&n\le &\textbf{Points}\cr\hline \sf1&10&10 \operatorname{pts}\cr\hline \sf2&50&20 \operatorname{pts}\cr\hline \sf3&500&20 \operatorname{pts}\cr\hline \sf4&2\times 10^3&20 \operatorname{pts}\cr\hline \sf5&/&30 \operatorname{pts}\cr\hline \end{array} $$对于 的数据,,,保证 均为排列。