QOJ.ac

QOJ

時間限制: 5.0 s 記憶體限制: 256 MB 總分: 100 可 Hack ✓

#9242. 一道简单的几何题

统计

给定一个长度为 $n$ 的整数序列 $\{A_i\}$ 以及由两个整数 $k, b$ 定义的直线 $y = kx + b$。

我们称中心为 $i$ 的整数半径 $r$ 是“好的”,当且仅当 $i+r \le n$,$i-r > 0$,且 $A_{i+r} - A_{i-r} = kr + b$。

我们定义 $\text{rad}(i)$ 为满足以下条件的最大整数 $r_0$:对于所有 $1 \le r \le r_0$,$r$ 都是中心为 $i$ 的好半径。

你需要处理两种类型的查询: $1 \ l \ r \ v$:对于每个 $l \le i \le r$,将 $A_i$ 增加 $v$; $2 \ i$:计算 $\text{rad}(i)$。

输入格式

第一行包含四个整数 $n, q, k$ 和 $b$ ($1 \le n, q \le 2 \times 10^5$,$|k|, |b| \le 10^3$),分别表示整数序列的长度、查询次数以及直线的参数。

第二行包含 $n$ 个整数 $A_1, A_2, \dots, A_n$ ($|A_i| \le 10^3$),表示该整数序列。

接下来的 $q$ 行,每行包含一个查询,格式如题目描述所述。对于第一类查询,保证 $1 \le l \le r \le n$ 且 $|v| \le 10^3$。对于第二类查询,保证 $1 \le i \le n$。

输出格式

对于每个第二类查询,输出一行表示答案。

样例

输入 1

6 6 6 2
1 5 9 10 15 18
2 2
1 3 3 -3
2 2
1 3 4 3
2 3
2 4

输出 1

1
0
2
0

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.