CF272D Dima and Two Sequences

题目描述

小迪玛有两组具有整数坐标的点序列:序列 $(a_{1},1),(a_{2},2),\ldots,(a_{n},n)$ 和序列 $(b_{1},1),(b_{2},2),\ldots,(b_{n},n)$。 现在迪玛想统计,在满足以下条件的情况下,可以从这两组序列中组合出多少种长度为 $2n$ 的不同点序列:组合后的点序列中各点的 $x$ 坐标不递减。请帮助他完成统计。注意,每个初始序列中的元素都必须恰好使用一次。 如果存在某个 $i$ $(1\leq i\leq 2n)$,有 $(p_{i},q_{i})\neq(x_{i},y_{i})$,则迪玛认为两组组合结果 $(p_{1},q_{1}),(p_{2},q_{2}),\ldots,(p_{2n},q_{2n})$ 和 $(x_{1},y_{1}),(x_{2},y_{2}),\ldots,(x_{2n},y_{2n})$ 是不同的。 由于答案可能很大,请输出答案除以 $m$ 的余数。

输入格式

第一行包含一个整数 $n$ $(1\leq n\leq 10^5)$。 第二行包含 $n$ 个整数 $a_{1},a_{2},\ldots,a_{n}$ $(1\leq a_{i}\leq 10^9)$。 第三行包含 $n$ 个整数 $b_{1},b_{2},\ldots,b_{n}$ $(1\leq b_{i}\leq 10^9)$。 最后一行包含一个整数 $m$ $(2\leq m\leq 10^9+7)$。

输出格式

输出一个整数,表示所求答案对 $m$ 取余的结果。

说明/提示

在第一个样例中,只能得到一个序列:$(1,1),(2,1)$。 在第二个样例中,可以得到以下序列:$(1,1),(2,2),(2,1),(3,2)$;$(1,1),(2,1),(2,2),(3,2)$。因此答案为 $2$。 由 ChatGPT 5 翻译