Galgame

题目背景

众所周知,as_lky 喜欢 Galgame。

题目描述

as_lky 搞到了很多 Galgame(真的很多!)。一款 Galgame 可以被描述为很多场景(Scene)的结合,它们形成了一棵 **以 1 为根** 的二叉树,每一个结点都是一个场景,一个结点的左儿子和右儿子分别对应在该场景选 A 选项和 B 选项能够到达的场景(可能会到达空场景,即游戏结束),我们称其为 A 场景和 B 场景。 as_lky 如下定义了两个不同的 Galgame 场景哪个更有趣(两款 Galgame 谁更为有趣也就取决于它们的初始场景谁更有趣): 1. 如果这两个场景能够到达的场景总数(即通过任意选择能够到达的不同场景总数,包括该场景本身)不一样,那么能到达的场景数更多的那个更有趣; 2. 如果这两个场景的 A 场景不一样有趣,那么 A 场景更有趣的场景更有趣; 3. 否则这两个场景谁更有趣完全等价于他们 B 场景谁更有趣。 值得注意的是,空场景能到达的场景数被定义为 0。 ![示例](https://cdn.luogu.com.cn/upload/image_hosting/4d2208qd.png) 例如,对于上图给出的例子(若无法正常查看请 `右键 -> 查看图像`),我们这样判定 1 和 7 这两个场景谁更有趣: - 首先,1 和 7 能到达的场景数都是 6,因此我们首先尝试比较其 A 场景:2 和 8。 - 由于 2 和 8 能到达的场景数不同(分别是 3 和 2),则 2 场景比 8 场景更有趣;继而可以得到 1 场景比 7 场景更有趣。 as_lky 定义两个 Galgame 场景本质相同,当且仅当这两个场景都为空场景,或者它们的 A 场景本质相同且 B 场景本质相同。 as_lky 认为一款 Galgame 的有趣度是所有可能的、本质不同的、不及这款 Galgame 有趣的 Galgame 数量。现在 as_lky 给了你一款 Galgame,请告诉他这款 Galgame 的有趣度是多少。as_lky 觉得这个数字可能有些大,所以他想让你输出这个数字对 $998244353$ 取模的结果。

输入输出格式

输入格式


第一行一个正整数 $n$,代表这款 Galgame 中共有多少场景。 接下来 $n$ 行,每行两个非负整数 $a_i$ 和 $b_i$,分别代表该场景的 A 场景和 B 场景,0 代表空场景。保证数据合法。

输出格式


一行一个非负整数,代表有趣度对 $998244353$ 取模的结果。

输入输出样例

输入样例 #1

3
0 2
3 0
0 0

输出样例 #1

4

输入样例 #2

7
2 3
4 5
6 7
0 0
0 0
0 0
0 0

输出样例 #2

410

输入样例 #3

9
2 3
4 5
0 0
0 0
6 7
0 0
8 9
0 0
0 0

输出样例 #3

5206

说明

### 样例解释 样例一:下图分别给出了 as_lky 给你的 Galgame(左)和所有四种没有该 Galgame 有趣的 Galgame(右):(若无法正常查看请 `右键 -> 查看图像`) ![示例](https://cdn.luogu.com.cn/upload/image_hosting/oxer1eac.png) ### 测试点约束 **本题采用捆绑测试。** 对于全部数据,有 $1\le n\le 10^6$,$0\le a_i,b_i\le n$。 每个子任务的具体限制见下表: | 子任务编号 | 分值 | $n\le$ | 特殊性质 | |:-:|:-:|:-:|:-:| | 1 | 10 | $10$ | $\times$ | | 2 | 20 | $5000$ | $\times$ | | 3 | 30 | $10^6$ | $\surd$ | | 4 | 40 | $10^6$ | $\times$ | 特殊性质:保证数据均匀随机生成,即 $n$ 给定时,若所有场景数为 $n$ 的本质不同 Galgame 共有 $S$ 种,则每种本质不同的 Galgame 出现概率均为 $\frac{1}{S}$。 **本题读入量较大,请使用较快的读入方式。**