CF1913C Game with Multiset

题目描述

在本题中,你最初有一个空的多重集。你需要处理两种类型的操作: 1. ADD $x$ —— 向多重集中添加一个值为 $2^{x}$ 的元素; 2. GET $w$ —— 判断是否可以从当前多重集选出若干元素,使其和等于 $w$。

输入格式

第一行包含一个整数 $m$($1 \le m \le 10^5$),表示操作的数量。 接下来有 $m$ 行,每行包含两个整数 $t_i$、$v_i$,表示第 $i$ 次操作。如果 $t_i = 1$,则表示执行 ADD $v_i$($0 \le v_i \le 29$);如果 $t_i = 2$,则表示执行 GET $v_i$($0 \le v_i \le 10^9$)。

输出格式

对于每个 GET 操作,如果可以选出若干元素使其和等于 $w$,输出 YES;否则输出 NO。

说明/提示

由 ChatGPT 4.1 翻译