P5918 [FJOI2015] 金币换位问题
题目描述
给定一个 $n$,最开始序列长这样:
$$
\underbrace{\tt 111\cdots11}_{n \text{ 个 } 1}\underbrace{\tt 000\cdots00}_{n \text{ 个 } 0}\verb!__!
$$
现在要求用最少的交换步数,使得最终的序列为
$$
\underbrace{\tt 101010\cdots 1010}_{2\times n \text{ 个 } 01 \text{ 交替排列}}\verb!__!
$$
所谓交换是指**将相邻两个非空格的数一起挪到两个空格上**。
例如,下面是 $n=4$ 时的一组合法解:
- 初始状态:$\verb!11110000__!$。
- 第 $1$ 步:$\verb!__11000011!$。
- 第 $2$ 步:$\verb!101__00011!$。
- 第 $3$ 步:$\verb!1010100__1!$。
- 第 $4$ 步:$\verb!10101__001!$。
- 第 $5$ 步:$\verb!10101010__!$。
可以证明,最少的操作次数就是 $5$ 步。
输入格式
输入共一行一个整数 $n$。
输出格式
第一行输出最少移动步数。
接下来一行为移动方案,只要输出被移动的两个非空格格子左边那个的编号。详见样例。
说明/提示
对于 $100\%$ 的数据,$2