#P15664. [ICPC 2025 Jakarta R] AND and/or OR

[ICPC 2025 Jakarta R] AND and/or OR

说明

假设你有一个非负整数 xx。你可以进行两种类型的操作:

  • x:=x AND 2xx := x \textrm{ AND } 2x
  • x:=x OR 2xx := x \textrm{ OR } 2x

其中 AND\textrm{AND}OR\textrm{OR} 分别是按位与和按位或运算。

给定三个整数 NNAABB

如果 xx 的初始值为 NN,是否存在一个操作序列,该序列恰好包含 AA 次类型 1 的操作和恰好 BB 次类型 2 的操作,使得 xx 的最终值为 N2kN \cdot 2^k,其中 kk 是一个非负整数?

输入格式

输入包含三个整数 NNAABB1N10181 \leq N \leq 10^{18}0A,B10180 \leq A, B \leq 10^{18}A+B1A + B \geq 1)。

输出格式

如果可以使 xx 的最终值等于 N2kN \cdot 2^k(其中 kk 为非负整数),则输出一行 YES\texttt{YES},否则输出 NO\texttt{NO}

14 2 2
YES
1 0 9
NO

提示

样例 1 解释: 初始时 x=14x = 14。你可以进行以下操作序列:

  • 进行一次类型 1 操作。x=14 AND 28=12x = 14 \textrm{ AND } 28 = 12
  • 进行一次类型 1 操作。x=12 AND 24=8x = 12 \textrm{ AND } 24 = 8
  • 进行一次类型 2 操作。x=8 OR 16=24x = 8 \textrm{ OR } 16 = 24
  • 进行一次类型 2 操作。x=24 OR 48=56x = 24 \textrm{ OR } 48 = 56

xx 的最终值为 56=142256 = 14 \cdot 2^2

翻译由 DeepSeek V3.2 完成