#include <bits/stdc++.h>

using namespace std;

long long ans=0;

vector<int> v;

void merge(int lo, int m, int hi){
    vector<int> temp;
    int i=lo, j=m+1;
    while(i<=m && j<=hi){
        if (v[i] <= v[j]){
            temp.push_back(v[i++]);
        }  
        else{
            temp.push_back(v[j++]);
            ans+=m-i+1;
        }
    }
    for( ; i<=m; i++) temp.push_back(v[i]);
    for( ; j<=hi; j++) temp.push_back(v[j]);
    copy(temp.begin(), temp.end(), v.begin()+lo);
}


void mergeSort(int lo, int hi){
    if(lo==hi){
        return;
    }
    int m = lo+(hi-lo)/2;
    mergeSort(lo, m);
    mergeSort(m+1, hi);
    merge(lo, m, hi);
}

long long paletta_sort(int N, int V[]) {
    vector<int> pari, dispari;
    for(int i=0; i<N; i++){
        if(i%2 != V[i]%2) return -1;
        if(i%2==0) dispari.push_back(V[i]);
        else pari.push_back(V[i]);
    }
    v.assign(pari.begin(), pari.end());
    mergeSort(0, pari.size()-1);
    v.assign(dispari.begin(), dispari.end());
    mergeSort(0, dispari.size()-1);
    return ans;
}
