CF551E GukiZ and GukiZiana

题目描述

GukiZ 教授又开始玩数组了,并且偶然发现了一个新函数,他称之为 $GukiZiana$。给定一个下标从 $1$ 到 $n$ 的数组 $a$ 和一个数 $y$,函数 $GukiZiana(a, y)$ 表示最大的 $j-i$,其中满足 $a_j = a_i = y$。如果数组 $a$ 中不存在元素 $y$,那么 $GukiZiana(a, y) = -1$。GukiZ 还为你准备了一道题。这次你需要处理两种操作: 1. 第一种操作格式为 $1\ l\ r\ x$,表示将所有满足 $l \leq i \leq r$ 的 $a_i$ 增加一个非负整数 $x$。 2. 第二种操作格式为 $2\ y$,表示查询 $GukiZiana(a, y)$ 的值。 对于每个第二种操作,请输出答案,让 GukiZ 开心吧。

输入格式

第一行包含两个整数 $n$、$q$($1 \leq n \leq 5 \times 10^5, 1 \leq q \leq 5 \times 10^4$),表示数组的长度和操作的数量。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \leq a_i \leq 10^9$),表示初始数组 $a$。 接下来的 $q$ 行,每行包含如上文所述的四个或两个整数: - 如果以 $1$ 开头,则表示操作 $1\ l\ r\ x$($1 \leq l \leq r \leq n$,$0 \leq x \leq 10^9$)。 - 如果以 $2$ 开头,则表示操作 $2\ y$($1 \leq y \leq 10^9$)。

输出格式

对于每个第二种操作,输出 $GukiZiana(a, y)$ 的值。

说明/提示

由 ChatGPT 5 翻译