QOJ.ac

QOJ

Time Limit: 0.5 s Memory Limit: 256 MB Total points: 100

# 9034. 天降之物

统计

伊卡洛斯给了你一个长为 $n$ 的序列 $a$。

你需要实现 $m$ 个操作,操作有两种:

  1. 把序列中所有值为 $x$ 的数的值变成 $y$。
  2. 找出一个位置 $i$ 满足 $a_i=x$,找出一个位置 $j$ 满足 $a_j=y$,使得 $|i-j|$ 最小,并输出 $|i-j|$。

输入格式

第一行两个整数 $n,m$。

之后一行 $n$ 个整数,表示序列 $a$。

之后 $m$ 行,每行三个数 $opt,x,y$。

如果 $opt$ 为 $1$,代表把序列中所有值为 $x$ 位置的值变成 $y$。

如果 $opt$ 为 $2$,代表找出一个位置 $i$ 满足 $a_i=x$,找出一个位置 $j$ 满足 $a_j=y$,使得 $|i-j|$ 最小,并输出 $|i-j|$,如果找不出这样的位置,输出 Ikaros

本题强制在线,每次的 $x,y$ 需要 xor 上上次答案,如果输出 Ikaros,或者是第一次询问,则上次答案为 $0$。

共 $50$ 组数据,数据中保证 $n=m$。

输出格式

对于每个 $2$ 操作,输出一行一个整数表示答案。

如果无法找出满足题意的 $i,j$,则输出 Ikaros

样例数据

样例输入

5 5
1 2 2 4 4
2 3 3
2 2 4
1 3 2
1 5 5
2 2 5

样例输出

Ikaros
1
1

子任务

Idea:nzhtl1477,Solution:nzhtl1477,Code:nzhtl1477,Data:nzhtl1477( partially uploaded )

对于 $100\%$ 的数据,所有数在 $[1,10^5]$ 内,每次操作的值不超过 $n$。