CF1492D Genius's Gambit
题目描述
给定三个整数 $a$、$b$、$k$。
请你找到两个二进制整数 $x$ 和 $y$($x \ge y$),满足以下条件:
1. $x$ 和 $y$ 都由 $a$ 个 $0$ 和 $b$ 个 $1$ 组成;
2. $x-y$(同样以二进制形式表示)恰好有 $k$ 个 $1$。
不允许 $x$ 和 $y$ 有前导零。
输入格式
一行包含三个整数 $a$、$b$ 和 $k$($0 \leq a$;$1 \leq b$;$0 \leq k \leq a + b \leq 2 \times 10^5$),分别表示 $0$ 的个数、$1$ 的个数,以及结果中 $1$ 的个数。
输出格式
如果存在满足条件的两个整数,输出 "Yes",并在接下来的两行分别输出 $x$ 和 $y$ 的二进制表示。
否则输出 "No"。
如果有多组答案,输出任意一组均可。
说明/提示
在第一个样例中,$x = 101000_2 = 2^5 + 2^3 = 40_{10}$,$y = 100001_2 = 2^5 + 2^0 = 33_{10}$,$40_{10} - 33_{10} = 7_{10} = 2^2 + 2^1 + 2^0 = 111_2$。因此 $x-y$ 的二进制表示中恰好有 $3$ 个 $1$。
在第二个样例中,$x = 10100_2 = 2^4 + 2^2 = 20_{10}$,$y = 10010_2 = 2^4 + 2^1 = 18$,$x-y = 20 - 18 = 2_{10} = 10_2$。这正好有一个 $1$。
在第三个样例中,可以证明不存在满足条件的答案。
由 ChatGPT 4.1 翻译