CF1634F Fibonacci Additions

题目描述

对于一个数组 $X$,有如下操作:对于区间 $[l,r]$,给 $X_l$ 加上 $F_1$,给 $X_{l+1}$ 加上 $F_2$,以此类推,并且给 $X_r$ 加上 $F_{r-l+1}$。然后将区间 $[l,r]$ 内每个数对 $MOD$ 取模。$F$ 数组是这样一个数组:$F_1=1$,$F_2=1$,当 $i>2$ 时 $F_i=F_{i-1}+F_{i-2}$。 已知两个长度相同的数组 $A$,$B$,给出若干次操作,每次操作后你需要求出取模过后的数组 $A$,$B$ 是否相等。

输入格式

第一行包含三个整数 $n$,$q$,$MOD$,分别表示该数组数字的个数、操作的总个数和模数。 第二行包含 $A$ 数组的 $n$ 个数。 第三行包含 $B$ 数组的 $n$ 个数。 接下来 $q$ 行,每行包含一个字符 $c$,两个数字 $l$,$r$。如果 $c$ 是`A`,表示在 $A$ 数组上操作。如果 $c$ 是`B`,表示在 $B$ 数组上操作。

输出格式

共有 $q$ 行,每次操作后,如果取模过后的数组 $A$,$B$ 相同,则输出一行 `YES`,否则输出一行 `NO`。

说明/提示

对于 $100 \%$ 的数据,$1 \le n,q \le 3\times10^5$,$1 \le MOD \le 10^9+7$,$0 \le A_i,B_i < MOD$。