program ss;//(day1t2) var a,b:array[1..100000,1..2]of longint; x,y:array[1..100000]of longint; n,i,j,k,m,ans:longint; procedure sorta(h,l:longint); var i,j,m:longint; k:array[1..2]of longint; begin i:=h; j:=l; m:=a[(i+j)div 2,1]; while i<j do begin while a[i,1]<m do inc(i); while a[j,1]>m do dec(j); if i<=j then begin k:=a[i]; a[i]:=a[j]; a[j]:=k; inc(i); dec(j); end; end; if i<l then sorta(i,l); if h<j then sorta(h,j); end; procedure sortb(h,l:longint); var i,j,m:longint; k:array[1..2]of longint; begin i:=h; j:=l; m:=b[(i+j)div 2,1]; while i<j do begin while b[i,1]<m do inc(i); while b[j,1]>m do dec(j); if i<=j then begin k:=b[i]; b[i]:=b[j]; b[j]:=k; inc(i); dec(j); end; end; if i<l then sortb(i,l); if h<j then sortb(h,j); end; procedure bing(h,l:longint); var i,k,c,f1,f2:longint; begin if h=l then exit; c:=(h+l)div 2; bing(h,c); bing(c+1,l); f1:=h; f2:=c+1; k:=0; for i:=h to l do begin if f1>c then begin x[i]:=b[f2,1]; inc(f2); inc(k); continue; end; if f2>l then begin x[i]:=b[f1,1]; inc(f1); inc(ans,k); while ans>=99999997 do dec(ans,99999997);continue; end; if b[f1,1]<b[f2,1] then begin x[i]:=b[f1,1]; inc(f1); inc(ans,k); while ans>=99999997 do dec(ans,99999997); end else begin x[i]:=b[f2,1]; inc(f2); inc(k); end; end; for i:=h to l do b[i,1]:=x[i]; end; begin readln(n); for i:=1 to n do begin read(a[i,1]); a[i,2]:=i; end; for i:=1 to n do begin read(b[i,1]); b[i,2]:=i; end; sorta(1,n); sortb(1,n); for i:=1 to n do b[b[i,2],1]:=a[i,2]; ans:=0; bing(1,n); write(ans); end. /************************************************************** Problem: 2325 User: admin Language: Pascal Result: Wrong Answer ****************************************************************/