#P15167. [SWERC 2022] Controllers

[SWERC 2022] Controllers

说明

你在你祖父母家,正在一台奇怪的游戏机上玩一款老式电子游戏。你的手柄上只有两个按钮,每个按钮上都写着一个数字。

一开始,你的得分是 00。游戏共进行 nn 轮。对于每一轮 1in1 \le i \le n,第 ii 轮的规则如下:

屏幕上会出现一个符号 sis_i,它要么是 ++(加号),要么是 -(减号)。然后你必须按下手柄上的两个按钮中的一个。假设你按下了数字为 xx 的按钮:如果符号是 ++,你的得分增加 xx;如果符号是 -,你的得分减少 xx。按下按钮后,本轮结束。

当你完成所有 nn 轮后,如果你的得分是 00,你就获胜。

多年来,你的祖父母买了许多不同的手柄,所以你一共有 qq 个手柄。第 jj 个手柄上的两个按钮分别写着数字 aja_jbjb_j。对于每一个手柄,你需要判断是否可以用该手柄赢得游戏。

输入格式

第一行包含一个整数 nn1n21051 \le n \le 2 \cdot 10^5),表示游戏的轮数。

第二行包含一个长度为 nn 的字符串 ss,其中 sis_i 表示第 ii 轮屏幕上出现的符号。保证 ss 只包含字符 ++-

第三行包含一个整数 qq1q1051 \le q \le 10^5),表示手柄的数量。

接下来的 qq 行,每行包含两个整数 aja_jbjb_j1aj,bj1091 \le a_j, b_j \le 10^9),表示第 jj 个手柄上按钮上的数字。

输出格式

输出 qq 行。第 jj 行输出 YES\texttt{YES},如果使用第 jj 个手柄可以赢得游戏,否则输出 NO\texttt{NO}

8
+-+---+-
5
2 1
10 3
7 9
10 10
5 3
YES
NO
NO
NO
YES
6
+-++--
2
9 7
1 1
YES
YES
20
+-----+--+--------+-
2
1000000000 99999997
250000000 1000000000
NO
YES

提示

在第一个样例中,使用第一个手柄获得得分 00 的一种方式是:在第 112244556688 轮按下数字为 11 的按钮,在第 3377 轮按下数字为 22 的按钮。可以证明,使用第二个手柄无法获得得分 00

由 ChatGPT 4.1 翻译