Description
Rinne 给了你一个数列 a1,a2,…,an,你需要依次执行 m 个操作。
操作共有两种:
-
给定 l,r,x,y,将 al,al+1,al+2,…,ar 中等于 x 的数全部改成 y。
-
给定 l,r,x,y,找到 i,j 满足 i,j∈[l,r] 且 ai=x,aj=y,并要求 ∣i−j∣ 最小。求这个最小值。无解输出 −1。
第一行两个正整数 n,m,表示序列长度和操作个数。
第二行 n 个正整数 a1,a2,…,an。
接下来 m 行,每行五个正整数 op,l,r,x,y。若 op=1,表示修改操作。若 op=2,表示询问操作。l,r,x,y 对应的含义见题目描述。
对每个 op=2 的操作,输出一行一个整数表示答案。
6 5
1 1 4 5 1 4
1 1 3 1 7
2 1 4 7 7
1 1 5 7 3
2 2 6 1 3
2 3 3 3 3
0
3
-1
Hint
对于 100% 的数据,1≤n,m,ai,x,y≤105,1≤l≤r≤n。
本题共有 6 个子任务,每个子任务的限制如下:
子任务 1(1 分):保证对于任意操作,l=1,r=n。
子任务 2(5 分):n,m≤50。
子任务 3(18 分):n,m≤2000。
子任务 4(7 分):保证 ai,x,y∈{1,2}。
子任务 5(29 分):保证当 op=2 时,x=y。
子任务 6(40 分):没有特殊限制。
时间限制:1.5s
空间限制:512MB
Idea:nzhtl1477,mrsrz
Solution:mrsrz,nzhtl1477
Code:mrsrz
Data:mrsrz
Background:disangan233,mrsrz