#include <iostream>
#include <vector>
#include <queue>
using namespace std;
using ll=long long;
ll ris=0;
vector<int> ric(vector<int> &v){
    if (v.size()<=1) return v;
    int m=v.size()/2;
    vector<int> a={v.begin(),v.begin()+m},b={v.begin()+m,v.end()};
    vector<int> c(v.size());
    a=ric(a);
    b=ric(b);
    int i=0,j=0;
    while (i<a.size() && j<b.size()){
        if (a[i]<=b[j]) {
            c[i+j]=a[i];
            i++;
        }
        else {
            c[i+j]=b[j];
            ris+=(a.size()-i);
            j++;
        }
    }
    while (i<a.size()) {
        c[i+j]=a[i];
        i++;
    }
    while (j<b.size()) {
        c[i+j]=b[j];
        j++;
    }
    return c;
}
long long paletta_sort(int n, int v[]) {
    vector<int> a={v[0]},b={v[1]};
    for(int i=2;i<n;i++) {
        if ((v[i]%2)!=(v[i-2]%2)) return -1;
        if ((i%2)==0) a.push_back(v[i]);
        else b.push_back(v[i]);
    }
    a=ric(a);
    b=ric(b);
    return ris;
}



