CF797E Array Queries

题目描述

给定一个长度为 $n$ 的正整数数组 $a$,其中每个元素均不超过 $n$。 你需要对这个数组处理 $q$ 个查询。每个查询由两个整数 $p$ 和 $k$ 表示。对每个查询,执行若干次操作:每次操作将 $p$ 变为 $p+a_{p}+k$。这些操作会一直执行,直到 $p$ 大于 $n$。每个查询的答案是执行的操作次数。

输入格式

第一行包含一个整数 $n$,满足 $1 \leq n \leq 100000$。 第二行包含 $n$ 个整数,表示数组 $a$ 的元素,$1 \leq a_{i} \leq n$,$1 \leq i \leq n$。 第三行包含一个整数 $q$,满足 $1 \leq q \leq 100000$。 接下来 $q$ 行,每行包含两个整数 $p$ 和 $k$,分别表示对应查询的参数,$1 \leq p,k \leq n$。

输出格式

输出 $q$ 个整数,第 $i$ 个整数为第 $i$ 个查询的答案。

说明/提示

参考第一个样例: 在第一个查询中,第一次操作后 $p=3$,第二次操作后 $p=5$。 在接下来的两个查询中,第一次操作后 $p$ 就已经大于 $n$ 了。 由 ChatGPT 5 翻译