Logo HelloWorld信息学奥赛题库

少儿编程

时间限制:1 s 空间限制:32 MB

#3486. 「POI2007」立方体大作战 Tetris Attack

统计

题目描述

译自 POI 2007 Stage 2. Day 2「Tetris Attack

立方体大作战的游戏规则是这样的:给定一个有 $2n$ 个正整数的栈,每个正整数恰好出现两次。玩家每次可以交换两个相邻的正整数。如果两个相同的正整数相邻,则把这两个数从栈中移除。求最少的交换次数。

输入格式

第一行一个整数 $n$。接下来 $2n$ 行以从栈底到栈顶的顺序表示该栈,每行一个正整数 $a_i (1 \le a_i \le n)$。每个正整数恰出现两次,且初始时没有两个相同的正整数相邻。

保证存在不多于 $1\ 000\ 000$ 次交换的解。

输出格式

输出最少交换次数以及一组方案。

第一行有一个整数 $m$,表示交换次数。

接下来 $m$ 行每行一个整数 $p_i$,表示将从栈底数起第 $p_i$ 个正整数与第 $p_i+1$ 个正整数交换。

如果有多组解,输出任意一组。

样例 1

input

5
5
2
3
1
4
1
4
3
5
2

output

2
5
2

样例 2

input

3
1
2
3
1
2
3

output

3
3
4
2
3
4
3
2

数据范围与提示

对于全部数据,$1\le n\le 5\times 10^4,1\le a_i\le n$。