luogu#P8180. 「EZEC-11」Unmemorable

「EZEC-11」Unmemorable

题目描述

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

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

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

某日 Unputdownable 忘记了排列 aa,而且只剩余分别重排后的 llrr 数组了,你能帮助他还原原来的排列 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):n8n\leq 8
  • Subtask 2(15 pts):rinr_i\geq n
  • Subtask 3(15 pts):n2000n\leq 2000,保证存在一个排列 aa 满足排列 aa 所求出的 l,rl,r 即为给定的。
  • Subtask 4(25 pts):n106n\leq 10^6,保证存在一个排列 aa 满足排列 aa 所求出的 l,rl,r 即为给定的。
  • Subtask 5(40 pts):无特殊限制。

对于 100%100\% 的数据,1n1061 \leq n \leq 10^60li,rin+10 \leq l_i,r_i \leq n+1数据保证至少存在一种方案