问题文
给定长度为 N 的数列 S0 和 T。其中,保证存在一个自然数 r,使得 N 可以表示为 2r。
你可以进行 0 到 500 次操作。你的目标是找到操作次数 k,使得 Sk 和 T 相等。
第 i 次操作的步骤如下:
- 指定满足 0≤x<i,0≤y<i 的整数 x,y,以及满足 −(N−1)≤f≤N−1 的整数 f。
- 然后,指定一个只包含
x
、y
的长度为 N 的字符串 s。
- 使用 x,y,f,s 构造长度为 N 的数列 Si
- 如果 sj 是
x
,则 Si,j 是 Sx,j
- 如果 sj 是
y
,则 Si,j 是 Sy,j−f。注意,必须满足 1≤j−f≤N。
判断是否可以达到目标,如果可以,请输出一种操作示例。如果不可能,请输出 -1
。
请参考示例 1 中的操作说明。
制约条件
- 2≤N≤8192
- 1≤S0,j,Tj≤N
- 存在一个自然数 r,使得 N 可以表示为 2r
- 所有给定的输入都是整数
输入
输入以以下格式从标准输入中给出。
N
S0,1 S0,2 ... S0,N
T1 T2 ... TN
输出
如果目标不可达,则输出 −1。
如果目标可达,则按以下格式输出操作步骤。如果操作满足问题描述的约束条件,并且 SK 与 T 相等,则被视为正确答案。
K
x1 y1 f1 s1
:
xK yK fK sK
输入示例 1
4
1 2 3 4
2 4 3 4
输出示例 1
2
0 0 1 xxyx
0 1 -2 yyxx
- 在第 1 步操作中,我们指定 x=0,y=0,f=1,s=
xxyx
。
- S1,1,S1,2,S1,4 分别是 S0,1,S0,2,S0,4,并且 S1,3 是 S0,2。因此,S1=(1,2,2,4)。
- 在第 2 步操作中,我们指定 x=0,y=1,f=−2,s=
yyxx
。
- S2,3,S2,4 分别是 S0,3,S0,4,并且 S2,1,S2,2 分别是 S1,3,S1,4。因此,S2=(2,4,3,4)。
- 由于 S2 和 T 相等,这是一个正确答案。
输入示例 2
4
3 1 2 3
1 2 3 4
输出示例 2
-1