#include<bits/stdc++.h>
using namespace std;


vector<int> merge(vector<int> &u,vector<int> &v, long long &ans){
	vector<int> w;
	int a=0,b=0;
	while(a<u.size() && b<v.size()){
		if(u[a]>v[b]){
			w.push_back(v[b]);
			ans+=a;
			b++;
		}
		else{
			w.push_back(u[a]);
			a++;
		}
	}
	while(a<u.size()){
		w.push_back(u[a]);
		a++;
	}
	while(b<v.size()){
		w.push_back(v[b]);
		ans+=a;
		b++;
	}
	return w;
}

vector<int> mergesort(int L,int R,vector<int> &P,long long &ans){
	vector<int> u,v;
	if(R-L>1){
		int m=(R+L)/2;
		u=mergesort(L,m,P,ans);
		v=mergesort(m+1,R,P,ans);
	}
	else if(R==L) return {P[R]};
	else{
		u={P[L]},v={P[R]};
	}
	return merge(u,v,ans);
	
}


long long inversioni(int N,vector<int> v){
	long long ans=0;
	int L=0,R=N-1;
	mergesort(0,N-1,v,ans);
	return ans;
}





long long paletta_sort(int N, int V[]) {
    vector<int> v0,v1;
    for(int i=0;i<N;i++){
    	if(i%2!=V[i]%2) return -1;
    	if(i%2==0){
    		v0.push_back(V[i]);
		}
		else{
			v1.push_back(V[i]);
		}
	}
	return (inversioni(v0.size(),v0)+inversioni(v1.size(),v1));
}

/*
int main() {
	int N;
	cin>>N;
	vector<int> V(N);
	for(int i=0;i<N;i++){
		cin>>V[i];
	}
	cout<<paletta_sort(N,V)<<endl;
}*/
