#include <cstdio>
#include <cassert>
#include <cstdlib>
#include <iostream>
#include <vector>

static FILE *fr, *fw;

// Declaring variables
static int N;
static int* V;
static long long int numero_ribaltamenti;
using namespace std;
using ll=long long;

ll k;


int merge(vector<ll>&a, ll l, ll mid, ll r){
    ll lsize=mid-l+1;
    ll rsize=r-mid;
    
    vector<ll> leftarr(lsize);
    vector<ll> rightarr(rsize);
    
    for(int i=0; i<lsize; i++){
        leftarr[i]=a[l+i];
    }
    for(int i=0; i<rsize; i++){
        rightarr[i]= a[mid+i+1];
    }
    
    int i=0;
    int j=0;
    ll idx=l;
    
    while(i<lsize && j<rsize){
        if(leftarr[i]<=rightarr[j]){
            a[idx]=leftarr[i];
            i++;
        }
        else{
            a[idx]=rightarr[j];
            k+=lsize-i; 
            j++;
        }
        idx++;
    }
    
    while(i<lsize){
        a[idx]=leftarr[i];
        i++;
        idx++;
    }
    
    while(j<rsize){
        a[idx]=rightarr[j];
        j++;
        idx++;
    }
    
    
    
    
    return 0;
    
}


void mergesort(vector<ll>&a, ll l, ll r){
    while(l<r){
        ll mid=(l+r)/2;
        mergesort(a, l, mid);
        mergesort(a, mid+1, r);
        merge(a, l, mid, r);
        return;
    }
}



long long int paletta_sort(int N, int* V){
    //0-based
    vector<ll> vpari;
    vector<ll> vdispari;
    
    for(int i=0; i<N; i++){
        if(i%2==0){
            vpari.push_back(V[i]);
        }
        else{
            vdispari.push_back(V[i]);
        }
    }
    for(int i=0; i<vpari.size(); i++){
        if(vpari[i]%2 != 0){
            return -1;
        }
    }
    for(int i=0; i<vdispari.size(); i++){
        if(vdispari[i]%2 == 0){
            return -1;
        }
    }
    
    k=0;
    
    mergesort(vpari, 0, vpari.size()-1);
    mergesort(vdispari, 0, vdispari.size()-1);
    
    
    return k;
}
/*
int main() {
    fr = fopen("input.txt", "r");
    fw = fopen("output.txt", "w");

    // Reading input
    fscanf(fr, "%d ", &N);
    V = (int*)malloc(N * sizeof(int));
    for (int i0 = 0; i0 < N; i0++) {
        fscanf(fr, "%d ", &V[i0]);
    }

    // Calling functions
    numero_ribaltamenti = paletta_sort(N, V);

    // Writing output
    fprintf(fw, "%lld\n", numero_ribaltamenti);
    
    fclose(fr);
    fclose(fw);
    return 0;
}*/

