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 翻译