#P8180. 「EZEC-11」Unmemorable

「EZEC-11」Unmemorable

题目描述

Unputdownable 手中有一个长度为 nn 的排列 aa。

他在练习单调栈的时候用程序对于每一个 ii 求出了最大的 lil_i 使得 ali<aia_{l_i} < a_i 且 li<il_i<i,以及最小的 rir_i 使得 ari<aia_{r_i}<a_i 且 ri>ir_i>i。

特别的,若这样的 lil_i 不存在,则定义为 00,不存在的 rir_i 则定义为 n+1n+1。

某日 Unputdownable 忘记了排列 aa,而且只剩余分别重排后的 ll 和 rr 数组了,你能帮助他还原原来的排列 aa 吗?

随后由于他发现无法还原 aa,你只要告诉他有多少种可能的原排列 aa。

答案对于 998244353998244353 取模,数据保证至少存在一种方案。

输入格式

第一行输入一个整数 nn。

第二行输入 nn 个整数,表示重排后的 ll。

第三行输入 nn 个整数,表示重排后的 rr。

输出格式

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

5
3 1 0 0 4
6 3 6 3 6

6

提示

样例解释 1

一种可能的排列是 {2,5,1,3,4}\{2,5,1,3,4\},ll 数组是 {0,1,0,3,4}\{0,1,0,3,4\},rr 数组是 {3,3,6,6,6}\{3,3,6,6,6\}。

本题采用捆绑测试。

  • Subtask 1(5 pts):n≤8n\leq 8。
  • Subtask 2(15 pts):ri≥nr_i\geq n。
  • Subtask 3(15 pts):n≤2000n\leq 2000,保证存在一个排列 aa 满足排列 aa 所求出的 l,rl,r 即为给定的。
  • Subtask 4(25 pts):n≤106n\leq 10^6,保证存在一个排列 aa 满足排列 aa 所求出的 l,rl,r 即为给定的。
  • Subtask 5(40 pts):无特殊限制。

对于 100%100\% 的数据,1≤n≤1061 \leq n \leq 10^6,0≤li,ri≤n+10 \leq l_i,r_i \leq n+1,数据保证至少存在一种方案。