#P0507. 弹珠

弹珠

题目描述

汪老师已经将 nn 个彩色弹珠排成一排。第 ii 个弹珠的颜色是 aia_i。汪老师喜欢有序的事物,所以他希望重新排列弹珠,使得相同颜色的弹珠形成一个连续的段落(每种颜色只有一个这样的段落)。

换句话说,汪老师希望重新排列弹珠,使得对于每种颜色 jj,如果颜色为 jj 的最左边的弹珠在排列中的位置是第 ll 个,颜色为 jj 的最右边的弹珠在排列中的位置是第 rr 个,那么从第 ll 个到第 rr 个的每个弹珠的颜色都是 jj

为了实现他的目标,汪老师可以执行以下操作任意次数:

选择两个相邻的弹珠并交换它们。

你需要计算汪老师需要执行的最少操作次数来重新排列弹珠。请注意,具有相同颜色的弹珠段的顺序不重要,只需要确保对于每种颜色,所有该颜色的弹珠都形成一个连续的段落即可。

输入格式

第一行包含一个整数 n(2n4105)n(2 \le n \le 4 \cdot 10^5),表示弹珠的数量。

第二行包含一个整数序列 a1,a2,,an(1ai20)a_1, a_2, \ldots, a_n(1 \le a_i \le 20),其中 aia_i 是第 ii 个弹珠的颜色。

输出格式

输出汪老师需要执行的最少操作次数。

样例

7
3 4 2 3 4 2 2
3
5
20 1 14 10 2
0
13
5 5 4 4 3 5 7 6 5 4 4 6 5
21

说明/提示

样例解释

在第一个示例中,只需要三次操作。首先,汪老师应该交换第三个和第四个弹珠,使得颜色序列为[3,4,3,2,4,2,2][3, 4, 3, 2, 4, 2, 2]。然后,汪老师应该交换第二个和第三个弹珠,使得序列为[3,3,4,2,4,2,2][3, 3, 4, 2, 4, 2, 2]。最后,汪老师应该交换第四个和第五个弹珠,使得序列为[3,3,4,4,2,2,2][3, 3, 4, 4, 2, 2, 2]

在第二个示例中,不需要执行任何操作。