program Project2; {$APPTYPE CONSOLE} uses SysUtils; type mas=array[1..200000,1..2]of longint; var a:mas; n,i,j,res,top1,top2,k:longint; s1,s2,m1,m2:array[0..200000]of longint; function max(a,b:longint):longint; begin if a>b then max:=a else max:=b; end; procedure push(a:longint); begin inc(top1); s1[top1]:=a; m1[top1]:=max(s1[top1],m1[top1-1]); end; function pop:longint; var key:longint; begin if top2=0 then while top1<>0 do begin key:=s1[top1]; dec(top1); inc(top2); s2[top2]:=key; m2[top2]:=max(s2[top2],m2[top2-1]) end; pop:=s2[top2]; dec(top2); end; function fmax:longint; begin if m2[top2]>m1[top1]then fmax:=m2[top2] else fmax:=m1[top1]; end; procedure swap(var a,b:longint); var key:longint; begin key:=a; a:=b; b:=key; end; function partition(var A:mas;p,r:longint):longint; var x,i,j:longint; begin x:=A[r,1]; i:=p-1; for j:=p to r-1 do if (A[j,1]a[i,2] then swap(a[i,1],a[i,2]); end; close(input); top1:=0; top2:=0; qsort(a,1,n); for i:=1 to n do push(a[i,2]); for i:=1 to n-1 do begin k:=pop; if k<=fmax then inc(res); end; {for i:=1 to n do if a[i,2]>=a[i-1,2]then inc(res);} assign(output,'task.out'); rewrite(output); writeln(res); close(output); end.