#B4371. [GXPC-S 2025] 序列 / sequence

[GXPC-S 2025] 序列 / sequence

题目背景

题目来源:2025 年广西中小学生程序设计挑战赛复赛(进阶组试题)。

题目描述

求知的隐士将知识传授给懵懂无知的凡人,隐士每年提出 nn 个正确的观点和 mm 个错误的观点,且 nmn \leq m。其中正确的观点用数字 “1” 表示,错误的观点用数字 “0” 表示。例如,如果他提出了 3 个正确观点和 2 个错误观点,序列可能是 “11100” 或 “10101”。人们按序列的顺序讨论这些问题。

隐士定义,一条观点序列是好的:当且仅当序列中错误观点数量与正确观点数量之差为 KK。也就是说,K=mnK = m - n。隐士同时注意到:当某个观点序列的所有子段中,KK 的最大值恰好是 kk 时,人们获得知识的效果最好可理解。现在隐士希望小景编写一个程序,使他不必手造观点序列。

序列需恰好包含 nn 个 1 和 mm 个 0,并且所有子段的 KK 的最大值恰为 kk。保证输出的数一定存在符合要求的序列。

形式化地,设某序列 ss 包含 nsn_s 个 1 和 msm_s 个 0,则 KK 为:

K=ts=msnsK = t_s = m_s - n_s

所有子段构成集合 {s1,s2,,sn}\{ s_1, s_2, \dots, s_n \},此时:

k=max(ts1,ts2,,tsn)k = \max( t_{s_1}, t_{s_2}, \dots, t_{s_n} )

子段:原序列中一段连续的非空子序列。例如,假定原序列为 abcde\texttt{abcde},其子段有 a\texttt{a}c\texttt{c}de\texttt{de}abc\texttt{abc}bcde\texttt{bcde}abcde\texttt{abcde} 等。

字典序:对于数字,不同排列的字典序是从左到右依次对应的数字的先后决定的。例如对于 4 个数字的排列 1234 和 1243,排列 1234 在前(称为字典序更小),排列 1243 在后(称为字典序更大)。

输入格式

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

输出格式

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

2 3 2
00101
5 10 8
000000001010111

提示

样例解释

  • 对于样例 1 的解释:

取前 2 位(00\texttt{00}),可以取得所有子段的 KK 的最大值,恰为 22,且字典序最小。

  • 对于样例 2 的解释:

取前 8 位,可以取得所有子段的 KK 的最大值,恰为 8,且字典序最小。

数据范围

  • 对于 10%10\% 的数据:1n,m501 \leq n, m \leq 50
  • 对于 60%60\% 的数据:1n,m1041 \leq n, m \leq 10^4

对于 100%100\% 的数据,保证:

  • mnkmax(m,n)m - n \leq k \leq \max(m, n)n+m1n + m \geq 1
  • 1n,m2×1051 \leq n, m \leq 2 \times 10^5,且 nmn \leq m