B4371 [GXPC-S 2025] 序列 / sequence

题目背景

题目来源:2025 年广西中小学生程序设计挑战赛复赛(进阶组[试题](https://mp.weixin.qq.com/s?__biz=MzI3NDM3MzcwNQ==&mid=2247490166&idx=5&sn=e7ba7e3bc8126027b9abd662518c208b&chksm=ea9c06dd4d18206ed9d88124cc78b947298df2555889e98620204c2ea1471f58c135c00f99fb&mpshare=1&scene=23&srcid=0724dNJdhMxpUHag1dqkhiqL&sharer_shareinfo=7e47197d6e5c044ae705613db988029c&sharer_shareinfo_first=7e47197d6e5c044ae705613db988029c#rd))。

题目描述

求知的隐士将知识传授给懵懂无知的凡人,隐士每年提出 $n$ 个正确的观点和 $m$ 个错误的观点,且 $n \leq m$。其中正确的观点用数字 “1” 表示,错误的观点用数字 “0” 表示。例如,如果他提出了 3 个正确观点和 2 个错误观点,序列可能是 “11100” 或 “10101”。人们按序列的顺序讨论这些问题。 隐士定义,一条观点序列是好的:当且仅当序列中错误观点数量与正确观点数量之差为 $K$。也就是说,$K = m - n$。隐士同时注意到:当某个观点序列的所有子段中,$K$ 的最大值恰好是 $k$ 时,人们获得知识的效果最好可理解。现在隐士希望小景编写一个程序,使他不必手造观点序列。 序列需恰好包含 $n$ 个 1 和 $m$ 个 0,并且所有子段的 $K$ 的最大值恰为 $k$。保证输出的数一定存在符合要求的序列。 形式化地,设某序列 $s$ 包含 $n_s$ 个 1 和 $m_s$ 个 0,则 $K$ 为: $$ K = t_s = m_s - n_s $$ 所有子段构成集合 $\{ s_1, s_2, \dots, s_n \}$,此时: $$ k = \max( t_{s_1}, t_{s_2}, \dots, t_{s_n} ) $$ --- 子段:原序列中一段连续的非空子序列。例如,假定原序列为 $\texttt{abcde}$,其子段有 $\texttt{a}$,$\texttt{c}$,$\texttt{de}$,$\texttt{abc}$,$\texttt{bcde}$,$\texttt{abcde}$ 等。 字典序:对于数字,不同排列的字典序是从左到右依次对应的数字的先后决定的。例如对于 4 个数字的排列 1234 和 1243,排列 1234 在前(称为字典序更小),排列 1243 在后(称为字典序更大)。

输入格式

一行 3 个正整数 $n, m, k$,表示正确观点个数、错误观点个数和最优的 $K$。

输出格式

输出满足条件且字典序最小的 01 字符串。

说明/提示

#### 样例解释 - 对于样例 1 的解释: 取前 2 位($\texttt{00}$),可以取得所有子段的 $K$ 的最大值,恰为 $2$,且字典序最小。 - 对于样例 2 的解释: 取前 8 位,可以取得所有子段的 $K$ 的最大值,恰为 8,且字典序最小。 #### 数据范围 - 对于 $10\%$ 的数据:$1 \leq n, m \leq 50$; - 对于 $60\%$ 的数据:$1 \leq n, m \leq 10^4$; 对于 $100\%$ 的数据,保证: - $m - n \leq k \leq \max(m, n)$,$n + m \geq 1$; - $1 \leq n, m \leq 2 \times 10^5$,且 $n \leq m$。