A49078.擂台赛
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:256MB
题目描述
现有一场擂台赛,参赛选手共计 2n 名。每位选手具有一个能力值,且彼此间的能力值毫无重复。比赛初始阶段,裁判长会将所有选手的参赛序号进行彻底打乱。待序号打乱完毕后,比赛将严格按照如下规则有序展开:
在每一轮比赛中,针对本轮的选手,编号为 2i−1 的选手会与编号为 2i 的选手进行激烈对决,其中能力值更高的选手将成功晋级,成为下一轮比赛中编号为 i 的选手。如此循环往复,比赛持续进行,直至最终赛场上仅剩下 1 名选手为止。
我们特别规定,当赛场上只剩下一名选手时,该轮被记为第 n+1 轮。
如今,我们心中怀有这样的疑问:对于每一位选手而言,在所有可能的序号分配情形下,最晚在第几轮淘汰?并且,在这些所有可能的序号分配情况中,又有多少种情形能够让选手取得自己的最佳成绩呢?
情况数可能很多,将结果对 998244353 取模。
输入格式
第一行输入一个整数 n , 代表有 2n 名选手。
第二行输入 2n 个整数 vi ,代表着第 i 名选手的能力值。
输出格式
输出 n 行,每行输出两个整数,第一个整数代表着第 i 名选手的最好的成绩, 第二个数代表取模之后的情况数。
输入输出样例
输入#1
2 1 2 3 4
输出#1
1 24 2 8 2 16 3 24
输入#2
3 9 68 11 23 57 66 77 67
输出#2
1 40320 3 23040 2 5760 2 11520 3 1152 3 4608 4 40320 3 11520
说明/提示
数据范围
- 1≤n≤20
- 1≤vi≤109
样例解释
针对样例一,这儿有一种可行的选手编号打乱方式。打乱编号后,选手 1 记编号为 3,选手 2 记编号为 2 ,选手 3 记编号为 1 ,选手 4 记编号为 4 。
第一轮比赛:
第一场由编号为 1 的选手 3 对战编号为 2 的选手 2。由于选手 3 的能力值更高,所以选手 3 晋级下一轮,且在下一轮中记编号为 1;选手 2 在本轮被淘汰,成绩记为 1。
第二场由编号为 3 的选手 1 对战编号为 4 的选手 4 。因为选手 4 的能力值占优,选手 4 晋级下一轮,下一轮记编号为 2 ;选手 1 在本轮被淘汰,成绩记为 1。
第二轮比赛:
由编号为 1 的选手 3 对战编号为 2 的选手 4。选手 4 能力值更胜一筹,晋级下一轮,下一轮记编号为 1;选手 3 在本轮被淘汰,成绩记为 2。
第三轮比赛:
场上仅剩下编号为 1 的选手 4,选手 4 最终成绩为 3。