P10872 [COTS 2022] 移位 Maliand
题目背景
译自 [Izborne Pripreme 2022 (Croatian IOI/CEOI Team Selection)](https://hsin.hr/pripreme2022/) D1T2。$\texttt{2s,0.5G}$。
[SPJ link](https://www.luogu.com.cn/paste/9qlivbk0)。
题目描述
给定非负整数 $N,K,L$,试构造两个 $01$ 序列 $S,T$,满足:
- $S,T$ 的长度为 $N$;
- $S$ 中恰好有 $K$ 个 $1$,$T$ 中恰有 $L$ 个 $1$;
- $f(S,T)$ 是所有可能的 $f(S,T)$ 中最小的。
定义 $f(S,T)$ 为**任意**循环移位 $S,T$ 后,$\sum_{i=1}^{N} S_i\operatorname{and} T_i$ 的最大值,其中 $\mathrm{and}$ 表示按位与运算。
请你构造出 $S,T$。
输入格式
一行三个整数 $N,K,L$。
输出格式
第一行一个整数 $F$,表示 $f(S,T)$ 的最小值;
接下来两行分别描述序列 $S,T$。相邻元素之间不需要加空格。
若有多解,输出任意一个均可。
说明/提示
对于 $100\%$ 的数据,保证 $1\le N\le 5\times 10^5$,$0\le K,L\le N$。
| 子任务编号 | 分值 | 约束 |
|:-----:|:------:|:-------:|
| $1$ | $5$ | $1\le N\le 13$ |
| $2$ | $50$ | $1\le N\le 5\, 000$ |
| $3$ | $45$ | 无额外约束 |
【评分方式】
如果你回答对了 $F$,可以得到 $20\%$ 的分数;
在此基础下,如果你的 $S,T$ 满足条件,将获得剩下 $80\%$ 的分数。
如果只打算回答第一问,也要任意输出两个符合条件 $1,2$ 的 $01$ 序列,否则不保证能得到分数。