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

long long paletta_sort(int N, int V[]) {
	vector <int> pari, dispari;
	ll ans = 0;
	for(int i = 0; i < N; ++i){
		if(i%2 != V[i]%2){
			return -1;
		}
		if(i%2 == 0){
			pari.push_back(V[i]);
		} else {
			dispari.push_back(V[i]);
		}
	}
	
	//pari
	ll lp = 1, np = pari.size();
	while(lp < np){
		lp *= 2;
	}
	vector <int> treeP(2*lp, 0);
	for(int i = 0; i < np; ++i){
		int L = pari[i]/2 + lp;
		int p = L;
		int R = lp+np-1;
		while(L < R){
			if(L%2 == 1){
				ans += treeP[L];
				++L;
			}
			if(R%2 == 0){
				ans += treeP[R];
				--R;
			}
			L /= 2;
			R /= 2;
		}
		if(L == R){
			ans += treeP[L];
		}
		
		while(p/2 > 0){
			++treeP[p];
			p /= 2;
		}
	}	
	
	//dispari
	ll ld = 1, nd = dispari.size();
	while(ld < nd){
		ld *= 2;
	}
	vector <int> treeD(2*lp, 0);
	for(int i = 0; i < nd; ++i){
		int L = dispari[i]/2 + ld;
		int p = L;
		int R = ld+nd-1;
		while(L < R){
			if(L%2 == 1){
				ans += treeD[L];
				++L;
			}
			if(R%2 == 0){
				ans += treeD[R];
				--R;
			}
			L /= 2;
			R /= 2;
		}
		if(L == R){
			ans += treeD[L];
		}
		
		while(p/2 > 0){
			++treeD[p];
			p /= 2;
		}
	}	
	
	
    return ans;
}
