已结束 GESP巅峰赛#21

A4978 | 擂台赛

时间限制2s
内存限制256MB
通过 / 提交0/0

题目描述

现有一场擂台赛,参赛选手共计 $2^n$ 名。每位选手具有一个能力值,且彼此间的能力值毫无重复。比赛初始阶段,裁判长会将所有选手的参赛序号进行彻底打乱。待序号打乱完毕后,比赛将严格按照如下规则有序展开:

在每一轮比赛中,针对本轮的选手,编号为 $2i - 1$ 的选手会与编号为 $2i$ 的选手进行激烈对决,其中能力值更高的选手将成功晋级,成为下一轮比赛中编号为 $i$ 的选手。如此循环往复,比赛持续进行,直至最终赛场上仅剩下 $1$ 名选手为止。

我们特别规定,当赛场上只剩下一名选手时,该轮被记为第 $n + 1$ 轮。

如今,我们心中怀有这样的疑问:对于每一位选手而言,在所有可能的序号分配情形下,最晚在第几轮淘汰?并且,在这些所有可能的序号分配情况中,又有多少种情形能够让选手取得自己的最佳成绩呢?

情况数可能很多,将结果对 $998244353$ 取模。

输入格式

第一行输入一个整数 $n$ , 代表有 $2^n$ 名选手。

第二行输入 $2^n$ 个整数 $v_i$ ,代表着第 $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
C++ 编辑器
输入
输出