Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
为什么wa啊啊啊 求助var a:array[0..2000] of int64; x,y:array[0..1000010] of int64; i,n,t,tmp:longint; ans:int64; function ask(k:longint):longint; begin ask:=0; while k<>0 do begin inc(ask,a[k]); k:=k-k and (-k); end; end; procedure add(k:longint); begin while k<=2000 do begin inc(a[k]); k:=k+k and (-k); end; end; procedure qsort(s,t:longint); var i,j:longint; begin i:=s; j:=t; x[0]:=x[(i+j) shr 1]; x[(i+j) shr 1]:=x[i]; y[0]:=y[(i+j) shr 1]; y[(i+j) shr 1]:=y[i]; while i<j do begin while (i<j) and ((x[j]>x[0]) or ((x[j]=x[0]) and (y[j]>y[0]))) do dec(j); if i<j then begin y[i]:=y[j]; x[i]:=x[j]; end; while (i<j) and ((x[i]<x[0]) or ((x[i]=x[0]) and (y[i]<y[0]))) do inc(i); if i<j then begin x[j]:=x[i]; y[j]:=y[i]; end; end; x[i]:=x[0]; y[i]:=y[0]; inc(i); dec(j); if i<t then qsort(i,t); if s<j then qsort(s,j); end; begin readln(t); tmp:=0; while tmp<t do begin inc(tmp); readln(n,n,n); for i:=1 to n do readln(x[i],y[i]); qsort(1,n); ans:=0; for i:=1 to n do begin inc(ans,i-ask(y[i])-1); add(y[i]); end; writeln('Test case ',tmp,': ',ans); end; end. Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator