CF1221A.2048 Game

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

2048 Game

题目描述

你正在玩一个变种的 2048 游戏。初始时,你有一个包含 nn 个整数的多重集合 ss。这个多重集合中的每个整数都是 22 的幂。

你可以对这个多重集合进行任意次数(也可以为零)如下操作:

每次操作时,你选择两个相等的整数,将它们从 ss 中移除,并将它们的和插入到 ss 中。

例如,如果 s={1,2,1,1,4,2,2}s = \{1, 2, 1, 1, 4, 2, 2\},你选择两个 22,则多重集合变为 {1,1,1,4,4,2}\{1, 1, 1, 4, 4, 2\}

如果你的多重集合中包含数字 20482048,你就获胜。例如,如果 s={1024,512,512,4}s = \{1024, 512, 512, 4\},你可以这样获胜:选择两个 512512,多重集合变为 {1024,1024,4}\{1024, 1024, 4\}。然后选择两个 10241024,多重集合变为 {2048,4}\{2048, 4\},你获胜。

你需要判断是否可以获胜。

你需要回答 qq 个独立的询问。

输入格式

第一行包含一个整数 qq1q1001 \le q \le 100),表示询问的数量。

每个询问的第一行包含一个整数 nn1n1001 \le n \le 100),表示多重集合中的元素个数。

每个询问的第二行包含 nn 个整数 s1,s2,,sns_1, s_2, \dots, s_n1si2291 \le s_i \le 2^{29}),表示多重集合的元素。保证所有元素都是 22 的幂。

输出格式

对于每个询问,如果可以在多重集合中得到 20482048,输出 YES,否则输出 NO。

你可以用任意大小写输出答案(例如 yEs、yes、Yes 和 YES 都被认为是正确的正答)。

说明/提示

在第一个询问中,你可以这样获胜:选择两个 512512ss 变为 {1024,64,1024}\{1024, 64, 1024\}。然后选择两个 10241024ss 变为 {2048,64}\{2048, 64\},你获胜。

在第二个询问中,ss 初始就包含 20482048

由 ChatGPT 4.1 翻译

样例

6
4
1024 512 64 512
1
2048
3
64 512 2
2
4096 4
7
2048 2 2048 2048 2048 2048 2048
2
2048 4096
YES
YES
NO
NO
YES
YES

在线编程 IDE

建议全屏模式获得最佳体验