#P7230. [COCI2015-2016#3] NEKAMELEONI

[COCI2015-2016#3] NEKAMELEONI

题目背景

「嘿,亲爱的!我要去给 11112828 日的 Croatian Open Competition In Informatics 出 T5。」
「去吧,去吧……」   
「…」


「这题怎么样?」
「唔……这太难了……会把那些小可爱难住的,换个简单些的吧……」
于是可爱的出题人便出了这道题。


嘿!我会 O(n6)O(n^6) 的做法,n n 的范围是什么??

题目描述

给你一个 nn 个元素的数组。你需要处理 qq 个查询。

  • 第一种查询需要你将数组中的第 pp 个数字改为 vv
  • 第二种查询需要你确定当前数组中最短的连续子数组的长度,这个子数组必须要包含从 11kk 的所有数字。

输入格式

第一行,三个正整数 n,k,mn, k, m

第二行,nn 个正整数,用空格隔开,表示数组中的数。

接着,mm 行,表示 mm 个查询,每个查询有以下两种形式。

  • 1 p v\texttt{1 p v}:将数组中的第 pp 个数字改为 vv
  • 2\texttt{2}:确定并输出当前数组中最短的连续子数组的长度,这个子数组必须要包含从 11kk 的所有数字。

输出格式

仅查询 22 有输出。

对于每个查询 22,输出当前数组中最短的连续子数组的长度(这个子数组必须要包含从 11kk 的所有数字),若没有输出 -1\texttt{-1}

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

3
-1
4

6 3 6
1 2 3 2 1 1
2
1 2 1
2
1 4 1
1 6 2
2
3
3
4

提示

数据范围及约定

  • 对于 30%30\% 的数据,1n,m5×1031\le n, m \le 5 \times 10 ^ 3
  • 对于 100%100\% 的数据,1n,m1051 \le n, m \le 10^51k501\le k \le 501pn1 \le p \le n1vk1\le v \le k

说明

翻译自 COCI 2015-2016 #3 E NEKAMELEONI,满分 140。