#P9089. 序列叠加

序列叠加

题目描述

给定一个长度为 NN 的序列 A1,A2,...,ANA_1,A_2,...,A_N,以及 QQ 次操作,询问操作后的序列情况。

AA 序列根据 55 个参数 N,S,X,Y,ZN,S,X,Y,Z 确定,其中 NN 表示序列长度:

A1=SA_1=S Ai+1=(X×Ai+Y)modZ,i=1,2,...,N1A_{i+1}=(X \times A_i + Y) \bmod Z, i=1,2,...,N-1

每个操作有 44 个参数 S,T,U,VS,T,U,V,表示对于每一个 UiVU \le i \le V,操作:

AiAi+AiU+SA_i \leftarrow A_i + A_{i-U+S}

注意,这个操作是区间安全的,也就是说不会引起连锁反应。

例如:A={1,2,3,4},(S,T,U,V)=(1,3,2,4)A=\{1,2,3,4\},(S,T,U,V)=(1,3,2,4) 时,会做如下操作:

A2=A2+A1A_2=A_2+A_1,此时序列变为 A={1,3,3,4}A=\{1,3,3,4\}

A3=A3+A2A_3=A_3+A_2,此时序列变为 A={1,3,5,4}A=\{1,3,5,4\}

A4=A4+A3A_4=A_4+A_3,此时序列变为 A={1,3,5,7}A=\{1,3,5,7\}

注意:每个表达式计算值的时候,都是按照整个操作前的值来进行,而不是上次赋值之后的新的值来操作。你可以理解成另有一个序列 BB,先计算出结果赋值给 BB,操作完成后再将 BB 整体赋值给 AA

QQ 次操作完成后,你需要输出整个序列。由于 AiA_i 会很大,你只需要根据奇偶性输出。如果第 ii 个整数 AiA_i 是偶数,输出字符 E,否则输出字符 O。

输入格式

第一行 55 个整数 N,S,X,Y,ZN,S,X,Y,Z

第二行 11 个整数 QQ

后续 QQ 行,每行 44 个整数 Si,Ti,Ui,ViS_i,T_i,U_i,V_i

输出格式

一行,长度为 NN 的字符串,第 ii 个字符表示 AiA_i 的奇偶性,E 表示偶数,O 表示奇数。

样例输入输出

样例输入1

10 8 1 3 5
3
3 5 7 9
3 10 1 8
1 3 1 3

样例输出1

EEEOOOOEEE

样例说明1

初始序列是:A=8,1,4,2,0,3,1,4,2,0A=8,1,4,2,0,3,1,4,2,0

第一次操作后:A=8,1,4,2,0,3,5,6,2,0A=8,1,4,2,0,3,5,6,2,0

第二次操作后,A=12,3,4,5,5,9,7,6,2,0A=12,3,4,5,5,9,7,6,2,0

第三次操作后,A=24,6,8,5,5,9,7,6,2,0A=24,6,8,5,5,9,7,6,2,0

根据奇偶性得到答案为:EEEOOOOEEE。

样例输入2

20 8 4 7 19
7
1 13 6 18
13 20 4 11
1 10 2 11
11 20 1 10
1 3 4 6
1 2 6 7
12 14 7 9

样例输出2

OEEEOOOEOOOOEOOOEEEO

数据范围

20% 的数据,Q1000Q \le 1000TiSi=ViUi1000T_i - S_i = V_i - U_i \le 1000

100% 的数据,1N2×1061 \le N \le 2 \times 10^60S,X,Y1090 \le S,X,Y \le 10^91Z1091 \le Z \le 10^90Q2×1050 \le Q \le 2 \times 10^51SiTiN1 \le S_i \le T_i \le N1UiViN1 \le U_i \le V_i \le NTiSi=ViUi105T_i - S_i = V_i - U_i \le 10^5