#P5918. [FJOI2015] 金币换位问题
[FJOI2015] 金币换位问题
题目描述
给定一个 ,最开始序列长这样:
$$\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!__! $$所谓交换是指将相邻两个非空格的数一起挪到两个空格上。
例如,下面是 时的一组合法解:
- 初始状态:。
- 第 步:。
- 第 步:。
- 第 步:。
- 第 步:。
- 第 步:。
可以证明,最少的操作次数就是 步。
输入格式
输入共一行一个整数 。
输出格式
第一行输出最少移动步数。
接下来一行为移动方案,只要输出被移动的两个非空格格子左边那个的编号。详见样例。
4
5
1 4 8 6 9
提示
对于 的数据,。