CF995B Suit and Tie

题目描述

Allen 正在举办一场正式的晚宴。$2n$ 个人以 $n$ 对情侣的形式参加了活动。经过一晚的欢乐后,Allen 想让大家排成一排拍一张合影。这 $2n$ 个人排成一行,但 Allen 不喜欢当前的顺序。Allen 更希望每对情侣都站在相邻的位置,这样照片会更加美观。 请你帮助 Allen 计算,最少需要交换多少次相邻位置,才能使得每对情侣都站在相邻的位置。

输入格式

第一行包含一个整数 $n$($1 \leq n \leq 100$),表示情侣的对数。 第二行包含 $2n$ 个整数 $a_1, a_2, \dots, a_{2n}$。对于每个 $i$($1 \leq i \leq n$),$i$ 恰好出现两次。如果 $a_j = a_k = i$,则表示第 $j$ 个人和第 $k$ 个人是一对情侣。

输出格式

输出一个整数,表示最少需要交换多少次相邻位置,才能使得每对情侣都站在相邻的位置。

说明/提示

在第一个样例中,可以通过如下两步变换:$1\ 1\ 2\ 3\ 3\ 2\ 4\ 4 \rightarrow 1\ 1\ 2\ 3\ 2\ 3\ 4\ 4 \rightarrow 1\ 1\ 2\ 2\ 3\ 3\ 4\ 4$,共需两步。注意,序列 $1\ 1\ 2\ 3\ 3\ 2\ 4\ 4 \rightarrow 1\ 1\ 3\ 2\ 3\ 2\ 4\ 4 \rightarrow 1\ 1\ 3\ 3\ 2\ 2\ 4\ 4$ 也只需两步。 第二个样例已经满足要求,因此需要 $0$ 次交换。 由 ChatGPT 4.1 翻译