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

题目描述

假设你有一个非负整数 $x$。你可以进行两种类型的操作: - $x := x \textrm{ AND } 2x$; - $x := x \textrm{ OR } 2x$; 其中 $\textrm{AND}$ 和 $\textrm{OR}$ 分别是按位与和按位或运算。 给定三个整数 $N$、$A$ 和 $B$。 如果 $x$ 的初始值为 $N$,是否存在一个操作序列,该序列**恰好**包含 $A$ 次类型 1 的操作和**恰好** $B$ 次类型 2 的操作,使得 $x$ 的最终值为 $N \cdot 2^k$,其中 $k$ 是一个非负整数?

输入格式

输入包含三个整数 $N$、$A$ 和 $B$($1 \leq N \leq 10^{18}$,$0 \leq A, B \leq 10^{18}$,$A + B \geq 1$)。

输出格式

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

说明/提示

**样例 1 解释:** 初始时 $x = 14$。你可以进行以下操作序列: - 进行一次类型 1 操作。$x = 14 \textrm{ AND } 28 = 12$。 - 进行一次类型 1 操作。$x = 12 \textrm{ AND } 24 = 8$。 - 进行一次类型 2 操作。$x = 8 \textrm{ OR } 16 = 24$。 - 进行一次类型 2 操作。$x = 24 \textrm{ OR } 48 = 56$。 $x$ 的最终值为 $56 = 14 \cdot 2^2$。 翻译由 DeepSeek V3.2 完成