「EZEC-11」Unmemorable

题目描述

Unputdownable 手中有一个长度为 $n$ 的排列 $a$。 他在练习单调栈的时候用程序对于每一个 $i$ 求出了最大的 $l_i$ 使得 $a_{l_i} < a_i$ 且 $l_i<i$,以及最小的 $r_i$ 使得 $a_{r_i}<a_i$ 且 $r_i>i$。 特别的,若这样的 $l_i$ 不存在,则定义为 $0$,不存在的 $r_i$ 则定义为 $n+1$。 某日 Unputdownable 忘记了排列 $a$,而且只剩余**分别重排**后的 $l$ 和 $r$ 数组了,你能帮助他还原原来的排列 $a$ 吗? 随后由于他发现无法还原 $a$,你只要告诉他有多少种可能的原排列 $a$。 答案对于 $998244353$ 取模,数据保证至少存在一种方案。

输入输出格式

输入格式


第一行输入一个整数 $n$。 第二行输入 $n$ 个整数,表示重排后的 $l$。 第三行输入 $n$ 个整数,表示重排后的 $r$。

输出格式


输出一行,包含一个整数,表示可能的排列数量对 $998244353$ 取模后的值。

输入输出样例

输入样例 #1

5
3 1 0 0 4
6 3 6 3 6

输出样例 #1

6

说明

**样例解释 1** 一种可能的排列是 $\{2,5,1,3,4\}$,$l$ 数组是 $\{0,1,0,3,4\}$,$r$ 数组是 $\{3,3,6,6,6\}$。 **本题采用捆绑测试。** - Subtask 1(5 pts):$n\leq 8$。 - Subtask 2(15 pts):$r_i\geq n$。 - Subtask 3(15 pts):$n\leq 2000$,保证存在一个排列 $a$ 满足排列 $a$ 所求出的 $l,r$ 即为给定的。 - Subtask 4(25 pts):$n\leq 10^6$,保证存在一个排列 $a$ 满足排列 $a$ 所求出的 $l,r$ 即为给定的。 - Subtask 5(40 pts):无特殊限制。 对于 $100\%$ 的数据,$1 \leq n \leq 10^6$,$0 \leq l_i,r_i \leq n+1$,**数据保证至少存在一种方案**。