AT_iroha2019_day2_j ライ麦畑で待ちながら
题目描述
青木原本和高桥约好一起玩,但高桥迟迟未到。于是青木决定自娱自乐,玩一个简单的游戏:
- 将 $N$ 张红色卡片和 $N-1$ 张蓝色卡片交替排列一行。首先,将红卡全排好,然后在每对相邻红卡之间插入一张蓝卡。
- 从左到第 $i$ 张红色卡片上写有一个非负整数 $A_i$。
- 从左到第 $i$ 张蓝色卡片,其中一面标有 `+`,另一面标有 `×`。若 $S_i$ 是 `+`,则红色卡片显示 `+` ;若 $S_i$ 是 `*`,则显示 `×`。
- 青木会根据顺序处理 $Q$ 个查询,每个查询由 $T_i, X_i, Y_i$ 三个非负整数组成,内容如下:
- 若 $T_i = 1$,则更新左起第 $X_i$ 张红色卡片上的数字为 $Y_i$。
- 若 $T_i = 2$,则翻转左起第 $X_i$ 张蓝色卡片,其保证 $Y_i = 0$。
- 若 $T_i = 3$(即回答查询),则将从左边第 $X_i$ 张红色卡片到第 $Y_i$ 张红色卡片之间的子序列视作一个表达式,并计算其结果。由于青木没有工具计算大数,结果需要取模 $10^9 + 7$。
伊吕波为了验证青木的答案正确性,决定编写一个程序来模拟这个游戏。
输入格式
输入为标准输入,格式如下:
> $N$ $A_1$ $A_2$ $\cdots$ $A_N$ $S$ $Q$ $T_1$ $X_1$ $Y_1$ $\vdots$ $T_Q$ $X_Q$ $Y_Q$
输出格式
对于每个回答查询,按顺序在一行中输出正确的答案。答案需要对 $10^9 + 7$ 取模。
说明/提示
- $S$ 是一个只包含 `+` 和 `*` 的字符串,长度为 $N-1$
- $2 \leq N \leq 2 \times 10^5$
- $0 \leq A_i \leq 10^9$
- $1 \leq Q \leq 10^5$
针对每个查询 $T_i, X_i, Y_i$,满足以下条件之一:
- $T_i = 1, 1 \leq X_i \leq N, 0 \leq Y_i \leq 10^9$
- $T_i = 2, 1 \leq X_i \leq N - 1, Y_i = 0$
- $T_i = 3, 1 \leq X_i \leq Y_i \leq N$
### 示例解释 1
在第一行中,应输出 $1 \times 2 \times 3 + 4 = 10$。`+` 和 `×` 的计算按照四则运算的优先级进行。
**本翻译由 AI 自动生成**