题目描述 现在有一个老板,拥有一个数组arry。老板可以在 t 秒内进行操作,每秒可以选择以下操作之一:
派出一个员工进行延迟复制
选择一个下标 id,将该下标的数改为另一个数 x:arry[id]=x
不进行任何操作
延迟复制: 员工会从下标 1 开始依次复制数组,每秒只能复制一次。例如,数组长度为 len,在 T 秒派出一个员工进行延迟复制,那么该员工会在第 T+len−1 秒复制完成。
例如,现在数组为 arry=[1,2,3,4,5]:
第一秒,老板派出一个员工 1 号进行延迟复制,此时该员工复制的数组为[1];
第二秒,老板修改 arry[1]=4,此时 arry=[4,2,3,4,5],并且此时员工 1 号进 行复制,复制的数组为 [1,2];
第三秒,老板派出一个员工 2 号进行延迟复制,此时该员工复制的数组为 [4],此时员工 1 号复制的数组为 [1,2,3]。
第四秒,老板什么都不做,此时员工 2 号的数组为[4,2],员工 1 号的数组为 [1,2,3,4],。
第五秒,老板什么都不做,此时员工 2 号的数组为 [4,2,3],员工 1 号的数组为 [1,2,3,4,5],员工 1 复制完成;
第六秒,老板修改 arry[4]=1,此时 arry=[4,2,3,1,5],此时员工 2 号的数组为 [4,2,3,1];
第七秒,老板什么都不做,此时员工 2 号的数组为 [4,2,3,1,5],员工 2 复制完成。 最后员工 1 复制的数组为 [1,2,3,4,5],员工 22 复制的数组为 [4,2,3,1,5]。
相似度定义为:员工复制的数组和初始数组 arry 中相同的个数。 比如该样例中员工 1 的相似度为 5,员工 2 的相似度为 3。现在你想知道相似度最大为多少。
输入 第一行包含两个用空格隔开的整数 n 和 t,分别表示数组 arry 的长度和老板的操作时间。 第二行包含 n 个用空格隔开的整数,表示数组 arry[1],arry[2],…,arry[n]。 接下来 t 行,每行描述每秒的操作: 若为操作 1,则该行只包含一个整数 1; 若为操作 2,则该行包含三个整数:2、修改的下标 id、修改的值 x; 若为操作 3,则该行只包含一个整数 3。 保证t秒结束后所有的员工都复制完成.并且至少有一个操作1
输出 输出一个整数,表示相似度最大为多少。
样例输入 5 7 1 2 3 4 5 1 2 1 4 1 3 3 2 4 1 3
样例输出 5
数据范围 对于 20% 的数据,1≤n≤5,1≤t≤100,保证只有一次修改操作; 对于 40% 的数据,1≤n≤100,1≤t≤10000; 对于 100% 的数据,1≤n≤10000,1≤t≤1000000,1≤arry[i]≤10。