#P0540. 序列上的带修跳跃(弹飞绵羊)

序列上的带修跳跃(弹飞绵羊)

题目描述

数轴上有 nn 个弹力装置,编号 0∼n−10\sim n-1,第 ii 个弹力系数为 kik_i(ki≥1k_i\ge 1)。一枚棋子落在装置 ii 上时被弹到 i+kii+k_i;若 i+ki≥ni+k_i\ge n 则被弹出、离开装置区。

处理 mm 个操作:

  • 1 i:询问棋子从装置 ii 出发,被弹几次后弹出界;
  • 2 i x:将装置 ii 的弹力系数 kik_i 改为 xx。

输入格式

第一行一个整数 nn。

第二行 nn 个正整数 k0,k1,…,kn−1k_0,k_1,\dots,k_{n-1}。

第三行一个整数 mm。

接下来 mm 行,每行 1 i 或 2 i x。

输出格式

对每个 1 i 操作输出一行,表示弹出所需次数。

样例

4
1 2 1 1
3
1 1
2 1 1
1 1
2
3

数据范围

1≤n≤2×1051\le n\le 2\times10^5,1≤m≤1051\le m\le 10^5,1≤ki,x≤1091\le k_i,x\le 10^9。