310058: CF1776L. Controllers

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Controllers

题目描述

You are at your grandparents' house and you are playing an old video game on a strange console. Your controller has only two buttons and each button has a number written on it. Initially, your score is $ 0 $ . The game is composed of $ n $ rounds. For each $ 1\le i\le n $ , the $ i $ -th round works as follows. On the screen, a symbol $ s_i $ appears, which is either $ \texttt{+} $ (plus) or $ \texttt{-} $ (minus). Then you must press one of the two buttons on the controller once. Suppose you press a button with the number $ x $ written on it: your score will increase by $ x $ if the symbol was $ \texttt{+} $ and will decrease by $ x $ if the symbol was $ \texttt{-} $ . After you press the button, the round ends. After you have played all $ n $ rounds, you win if your score is $ 0 $ . Over the years, your grandparents bought many different controllers, so you have $ q $ of them. The two buttons on the $ j $ -th controller have the numbers $ a_j $ and $ b_j $ written on them. For each controller, you must compute whether you can win the game playing with that controller.

输入输出格式

输入格式


The first line contains a single integer $ n $ ( $ 1 \le n \le 2\cdot 10^5 $ ) — the number of rounds. The second line contains a string $ s $ of length $ n $ — where $ s_i $ is the symbol that will appear on the screen in the $ i $ -th round. It is guaranteed that $ s $ contains only the characters $ \texttt{+} $ and $ \texttt{-} $ . The third line contains an integer $ q $ ( $ 1 \le q \le 10^5 $ ) — the number of controllers. The following $ q $ lines contain two integers $ a_j $ and $ b_j $ each ( $ 1 \le a_j, b_j \le 10^9 $ ) — the numbers on the buttons of controller $ j $ .

输出格式


Output $ q $ lines. On line $ j $ print $ \texttt{YES} $ if the game is winnable using controller $ j $ , otherwise print $ \texttt{NO} $ .

输入输出样例

输入样例 #1

8
+-+---+-
5
2 1
10 3
7 9
10 10
5 3

输出样例 #1

YES
NO
NO
NO
YES

输入样例 #2

6
+-++--
2
9 7
1 1

输出样例 #2

YES
YES

输入样例 #3

20
+-----+--+--------+-
2
1000000000 99999997
250000000 1000000000

输出样例 #3

NO
YES

说明

In the first sample, one possible way to get score $ 0 $ using the first controller is by pressing the button with numnber $ 1 $ in rounds $ 1 $ , $ 2 $ , $ 4 $ , $ 5 $ , $ 6 $ and $ 8 $ , and pressing the button with number $ 2 $ in rounds $ 3 $ and $ 7 $ . It is possible to show that there is no way to get a score of $ 0 $ using the second controller.

Input

题意翻译

给定 $n$ 个加减号和 $a$,$b$ 两个数字,初始分是 $0$,求能否将两个数字依次填入加减号并计算得出结果后,结果还是 $0$($a$,$b$可以任意填)。 能输出 $"YES"$,不能输出 $"NO"$。 $T$ 组询问。

Output

**题目描述**

你在外公外婆家,正在一个奇怪的游戏机上玩一个古老的游戏。你的控制器上只有两个按钮,每个按钮上都有一个数字。

最初,你的得分是 $ 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 \times 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 $ 行,如果使用控制器 $ j $ 可以赢得游戏,则打印 `YES`;否则打印 `NO`。

**输入输出样例**

**输入样例 #1**
```
8
+-+---+-
5
2 1
10 3
7 9
10 10
5 3
```
**输出样例 #1**
```
YES
NO
NO
NO
YES
```

**输入样例 #2**
```
6
+-++--
2
9 7
1 1
```
**输出样例 #2**
```
YES
YES
```

**输入样例 #3**
```
20
+-----+--+--------+-
2
1000000000 99999997
250000000 1000000000
```
**输出样例 #3**
```
NO
YES
```

**说明**

在第一个样例中,使用第一个控制器得到 $ 0 $ 分的一种可能方式是在第 $ 1 $、$ 2 $、$ 4 $、$ 5 $、$ 6 $ 和 $ 8 $ 轮按下数字 $ 1 $ 的按钮,并在第 $ 3 $ 和 $ 7 $ 轮按下数字 $ 2 $ 的按钮。可以证明没有使用第二个控制器得到 $ 0 $ 分的方法。**题目描述** 你在外公外婆家,正在一个奇怪的游戏机上玩一个古老的游戏。你的控制器上只有两个按钮,每个按钮上都有一个数字。 最初,你的得分是 $ 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 \times 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 $ 行,如果使用控制器 $ j $ 可以赢得游戏,则打印 `YES`;否则打印 `NO`。 **输入输出样例** **输入样例 #1** ``` 8 +-+---+- 5 2 1 10 3 7 9 10 10 5 3 ``` **输出样例 #1** ``` YES NO NO NO YES ``` **输入样例 #2** ``` 6 +-++-- 2 9 7 1 1 ``` **输出样例 #2** ``` YES YES ``` **输入样例 #3** ``` 20 +-----+--+--------+- 2 1000000000 99999997 250000000 1000000000 ``` **输出样例 #3** ``` NO YES ``` **说明** 在第一个样例中,使用第一个控制器得到 $ 0 $ 分的一种可能方式是在第 $ 1 $、$ 2 $、$ 4 $、$ 5 $、$ 6 $ 和 $ 8 $ 轮按下数字 $ 1 $ 的按钮,并在第 $ 3 $ 和 $ 7 $ 轮按下数字 $ 2 $ 的按钮。可以证明没有使用第二个控制器得到 $ 0 $ 分的方法。

加入题单

上一题 下一题 算法标签: