小红的双排列权值
题号:NC296657
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

\hspace{15pt}对于给定的长度为 2 \times m双排列 \{b_{1},b_{2},...,b_{2\times m}\},对于每个 k,若其两次出现的位置为 lr\left(1\leqq l<r\leqq 2\times m\right),则定义 f\left(k\right) = r - l - 1

\hspace{15pt}小红将双排列的权值定义为每一对相同元素的下标距离之和,即:
\sum\limits_{i = 1}^{m}{f\left(i\right)} 。

\hspace{15pt}现在小红拿到了一个长为 2 \times n 的双排列 \{a_{1},a_{2},...,a_{2\times n}\}
\hspace{15pt}小芳可以帮他进行最多一次如下操作(也可以不操作):
\hspace{23pt}\bullet选择下标 l, r \ (1 \leqq l, r \leqq 2 \times n),交换 a_{l}, a_{r}
\hspace{15pt}请你帮小红求出可得到的最大权值。

【名词解释】
\hspace{15pt}双排列:长度为 2\times n 的双排列为两个长度为 n 的排列打乱顺序后得到的数组。
\hspace{15pt}排列:长度为 n 的排列是由 1,2,\dots,nn 个整数、按任意顺序组成的数组(每个整数均恰好出现一次)。例如,\{2,3,1,5,4\} 是一个长度为 5 的排列,而 \{1,2,2\}\{1,3,4\} 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。

输入描述:

\hspace{15pt}第一行输入一个整数 n\ (1\leqq n \leqq 2\times10^{5})
\hspace{15pt}第二行输入 2 \times n 个整数 a_{1},a_{2},...,a_{2\times n}\ (1 \leqq a_{i} \leqq n),表示双排列的元素。保证其是一个合法的双排列。

输出描述:

\hspace{15pt}输出一个整数,代表最大权值。
示例1

输入

复制
2
1 1 2 2

输出

复制
2

说明

\hspace{15pt}在这个样例中,初始 f(1)=2-1-1=0f(2)=4-3-1=0,所以初始权值为 0
\hspace{15pt}我们可以交换 a_2a_3 得到 \{1,2,1,2\},此时 f(1)=3-1-1=1f(2)=4-2-1=1,所以权值为 0+2=2。可以证明这是最大权值。
示例2

输入

复制
2
1 2 1 2

输出

复制
2