#include<bits/stdc++.h>
using namespace std;
/*此代码的逻辑是先记录每个重复数字的位置,第一次出现的存在first[k]里面,
第二次出现存在second[k]里面,再从最first[k]里面找出最大的与second[k]里面最小的互换
最终权值 = 初始基础权值 + 互换后的最大增量;再输出这个值;
*/
int main() {
    int n;
    cin >> n;
    vector<int> a(2 * n);
    for (int i = 0; i < 2 * n; ++i) {
        cin >> a[i];
    }

    vector<int> first(n + 1, 0), second(n + 1, 0);
    for (int i = 0; i < 2 * n; ++i) {
        int num = a[i];
        if (first[num] == 0) {
            first[num] = i + 1; // 位置从1开始计数
        } else {
            second[num] = i + 1;
        }
    }

    long long base = 0;
    for (int k = 1; k <= n; ++k) {
        base += second[k] - first[k] - 1;
    }

    int max_first = 0, min_second = INT_MAX;
    for (int k = 1; k <= n; ++k) {
        max_first = max(max_first, first[k]);
        min_second = min(min_second, second[k]);
    }

    long long max_delta = max(0LL, 2LL * (max_first - min_second));

    cout << base + max_delta << endl;

    return 0;
}