program paletta;
var N,i0 ,i,z, dimpari, dimdispari:Longint;
V,pari, dispari, controllo: array of longint;
n_ribaltamenti,numero_ribaltamenti, piccolidopo,maggioriprima,fuoriposto, ricordafuoriposto:int64;
ordinabile: boolean;
function SOMMA(X:longint):int64;
begin
SOMMA:=0;
while (X > 0) do
begin
SOMMA:=SOMMA+controllo[X];
X:=X-(X and -X);
end
end;
Procedure modifica(X:longint; D:longint);
begin
while (X <D) do
begin
controllo[X]:=controllo[X]+1;
X:=X+(X and -X);
end
end;
function paletta_sort(N: longint; V: array of longint): int64;
begin
if N mod 2 = 0 then begin dimpari:=N div 2; dimdispari:= dimpari; end
else begin dimdispari:=N div 2 ; dimpari:= dimdispari+1; end;
Setlength(pari, dimpari);
Setlength(dispari, dimdispari);
Setlength(controllo, N);
ordinabile:=true;
for z:=0 to N-1 do if V[z] mod 2 <> z mod 2 then begin ordinabile:=false; n_ribaltamenti:=-1; end;
if ordinabile=true then begin
for i:=0 to N do controllo[i]:=0;
for i:=0 to N -1 do if i mod 2 =0 then pari[i div 2]:=V[i] div 2 ;
for i:=0 to N -1 do if i mod 2 <> 0 then dispari[i div 2]:=(V[i] -1) div 2 ;
i:=1; n_ribaltamenti:=0; ricordafuoriposto:=0;
while i<dimpari do
begin
piccolidopo:=0; maggioriprima:=0; fuoriposto:=0;
modifica (i, dimpari);
piccolidopo:=pari[i]-somma(pari[i]);
maggioriprima:=i-pari[i]+piccolidopo;
fuoriposto:=maggioriprima+piccolidopo;
if fuoriposto>ricordafuoriposto then ricordafuoriposto:=fuoriposto;
i:=i+1;
end;
n_ribaltamenti:=n_ribaltamenti+ricordafuoriposto;
for i:=0 to N do controllo[i]:=0;
i:=1; ricordafuoriposto:=0;
while i<=dimdispari do
begin
piccolidopo:=0; maggioriprima:=0; fuoriposto:=0;
modifica (i, dimdispari);
piccolidopo:=dispari[i]-somma(dispari[i]);
maggioriprima:=i-dispari[i]+piccolidopo;
fuoriposto:= maggioriprima+piccolidopo;
if fuoriposto>ricordafuoriposto then ricordafuoriposto:=fuoriposto;
i:=i+1;
end;
n_ribaltamenti:=n_ribaltamenti+ricordafuoriposto;
end;
paletta_sort:=n_ribaltamenti;
end;
begin
(*assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);*)
{ Reading input }
readln( N);
Setlength(V, N);
for i0 := 0 to N-1 do
begin
read(V[i0]);
end;
{ Calling functions }
numero_ribaltamenti := paletta_sort(N, V);
{ Writing output }
writeln(numero_ribaltamenti);
end.