CF551E.GukiZ and GukiZiana
省选/NOI-
通过率:0%
时间限制:10.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Professor GukiZ was playing with arrays again and accidentally discovered new function, which he called GukiZiana. For given array a, indexed with integers from 1 to n, and number y, GukiZiana(a, y) represents maximum value of j - i, such that a__j = a__i = y. If there is no y as an element in a, then GukiZiana(a, y) is equal to - 1. GukiZ also prepared a problem for you. This time, you have two types of queries:
- First type has form 1 l r x and asks you to increase values of all a__i such that l ≤ i ≤ r by the non-negative integer x.
- Second type has form 2 y and asks you to find value of GukiZiana(a, y).
For each query of type 2, print the answer and make GukiZ happy!
古基兹教授(Professor GukiZ)再次摆弄数组时,偶然发现了一个新函数,他将其命名为 GukiZiana。对于给定的数组 a(下标从 1 到 n)以及一个数 y,定义
GukiZiana(a,y)=max{j−i∣aj=ai=y}
即:在所有满足 ai=aj=y 且 i≤j 的下标对 (i,j) 中,取 j−i 的最大值。若 y 不在数组 a 中出现,则 GukiZiana(a,y)=−1。
古基兹还为你准备了一个问题。这一次,你将面对两种类型的查询:
- 第一种查询形如
1 l r x,表示将所有满足 l≤i≤r 的 ai 增加一个非负整数 x; - 第二种查询形如
2 y,要求你计算 GukiZiana(a,y) 的值。
对每个类型为 2 的查询,请输出对应答案,让古基兹开心起来!
输入格式
The first line contains two integers n, q (1 ≤ n ≤ 5 * 105, 1 ≤ q ≤ 5 * 104), size of array a, and the number of queries.
The second line contains n integers _a_1, _a_2, ... a__n (1 ≤ a__i ≤ 109), forming an array a.
Each of next q lines contain either four or two numbers, as described in statement:
If line starts with 1, then the query looks like 1 l r x (1 ≤ l ≤ r ≤ n, 0 ≤ x ≤ 109), first type query.
If line starts with 2, then th query looks like 2 y (1 ≤ y ≤ 109), second type query.
第一行包含两个整数 n、q(1≤n≤5×105,1≤q≤5×104),分别表示数组 a 的大小以及查询次数。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109),构成数组 a。
接下来的 q 行每行包含四个或两个数字,具体格式如下(如题面所述):
- 若某行以
1开头,则该查询形如1 l r x(1≤l≤r≤n,0≤x≤109),为第一类查询; - 若某行以
2开头,则该查询形如2 y(1≤y≤109),为第二类查询。
输出格式
For each query of type 2, print the value of GukiZiana(a, y), for y value for that query.
对于每个类型为 2 的查询,请输出该查询中对应 $ y $ 值的 GukiZiana($ a , y $) 的值。
输入输出样例
输入#1
4 3 1 2 3 4 1 1 2 1 1 1 1 1 2 3
输出#1
2
输入#2
2 3 1 2 1 2 2 1 2 3 2 4
输出#2
0 -1
输入解题思路,AI测评打分。不知道怎么写?