A49078.擂台赛

普及+/提高

官方

通过率:0%

时间限制:2.00s

内存限制:256MB

题目描述

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

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

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

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

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

输入格式

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

第二行输入 2n2^n 个整数 viv_i ,代表着第 ii 名选手的能力值。

输出格式

输出 nn 行,每行输出两个整数,第一个整数代表着第 ii 名选手的最好的成绩, 第二个数代表取模之后的情况数。

输入输出样例

  • 输入#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

说明/提示

数据范围

  • 1n201 \le n \le 20
  • 1vi1091 \le v_i \le 10^9

样例解释

针对样例一,这儿有一种可行的选手编号打乱方式。打乱编号后,选手 11 记编号为 33,选手 22 记编号为 22 ,选手 33 记编号为 11 ,选手 44 记编号为 44

第一轮比赛:

第一场由编号为 11 的选手 33 对战编号为 22 的选手 22。由于选手 33 的能力值更高,所以选手 33 晋级下一轮,且在下一轮中记编号为 11;选手 22 在本轮被淘汰,成绩记为 11

第二场由编号为 33 的选手 11 对战编号为 44 的选手 44 。因为选手 44 的能力值占优,选手 44 晋级下一轮,下一轮记编号为 22 ;选手 11 在本轮被淘汰,成绩记为 11

第二轮比赛:

由编号为 11 的选手 33 对战编号为 22 的选手 44。选手 44 能力值更胜一筹,晋级下一轮,下一轮记编号为 11;选手 33 在本轮被淘汰,成绩记为 22

第三轮比赛:

场上仅剩下编号为 11 的选手 44,选手 44 最终成绩为 33

首页