CF1776L Controllers

题目描述

你在你祖父母家,正在一台奇怪的游戏机上玩一款老式电子游戏。你的手柄上只有两个按钮,每个按钮上都写着一个数字。 一开始,你的得分是 $0$。游戏共进行 $n$ 轮。对于每一轮 $1 \le i \le n$,第 $i$ 轮的规则如下: 屏幕上会出现一个符号 $s_i$,它要么是 $+$(加号),要么是 $-$(减号)。然后你必须按下手柄上的两个按钮中的一个。假设你按下了数字为 $x$ 的按钮:如果符号是 $+$,你的得分增加 $x$;如果符号是 $-$,你的得分减少 $x$。按下按钮后,本轮结束。 当你完成所有 $n$ 轮后,如果你的得分是 $0$,你就获胜。 多年来,你的祖父母买了许多不同的手柄,所以你一共有 $q$ 个手柄。第 $j$ 个手柄上的两个按钮分别写着数字 $a_j$ 和 $b_j$。对于每一个手柄,你需要判断是否可以用该手柄赢得游戏。

输入格式

第一行包含一个整数 $n$($1 \le n \le 2 \cdot 10^5$),表示游戏的轮数。 第二行包含一个长度为 $n$ 的字符串 $s$,其中 $s_i$ 表示第 $i$ 轮屏幕上出现的符号。保证 $s$ 只包含字符 $+$ 和 $-$。 第三行包含一个整数 $q$($1 \le q \le 10^5$),表示手柄的数量。 接下来的 $q$ 行,每行包含两个整数 $a_j$ 和 $b_j$($1 \le a_j, b_j \le 10^9$),表示第 $j$ 个手柄上按钮上的数字。

输出格式

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

说明/提示

在第一个样例中,使用第一个手柄获得得分 $0$ 的一种方式是:在第 $1$、$2$、$4$、$5$、$6$ 和 $8$ 轮按下数字为 $1$ 的按钮,在第 $3$ 和 $7$ 轮按下数字为 $2$ 的按钮。可以证明,使用第二个手柄无法获得得分 $0$。 由 ChatGPT 4.1 翻译