白兔的游戏
题号:NC15255
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

Nim游戏是这样的:有 n 个石子堆,第 i 个石子堆有 a[i] 个石子,两个人轮流选择一个石子堆并从中拿走一个或者多个石子。拿走最后一个石子的人获胜。

现在有两个人他们决定每次随机选择一个合法决策来操作。现在他们想知道在这种决策方式下先手的胜率以及所有可能的情况中先手获胜的次数,对 998244353 取模。
即设答案化为最简分式后的形式为 a/b ,其中 a 和 b 的互质。 输出整数 x 使得 bx ≡ a mod 998244353 且 0 ≤ x < 998244353。 可以证明这样的整数 x 是唯一的。

输入描述:

第一行一个正整数n,表示石子堆数。
第二行一共n个正整数a[i],表示每堆的石子数。

输出描述:

一行两个整数,分别表示先手的胜率和所有可能的情况中先手获胜的次数,并对998244353取模。
示例1

输入

复制
2
1 2

输出

复制
499122177 3
示例2

输入

复制
3
1 2 3

输出

复制
499122177 86

备注:

∑ a[i] <= 50000