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 |
谁能帮帮我呀 怎么一直 wavar f,s:array [1..3000] of longint; procedure run(h,t:longint); var tmp,mid,i,j,ms:longint; begin i:=h;j:=t; mid:=f[(h+t) div 2];ms:=s[(h+t) div 2]; while (i<=j) do begin while (f[i]<mid) or ((f[i]=mid)and(s[i]<ms)) do inc(i); while (mid<f[j]) or ((f[j]=mid)and(s[j]>ms)) do dec(j); if i<=j then begin tmp:=f[i];f[i]:=f[j];f[j]:=tmp; tmp:=s[i];s[i]:=s[j];s[j]:=tmp; inc(i);dec(j); end; end; if h<j then run(h,j); if i<t then run(i,t); end; procedure main; var n,m,k,i,j,l:longint; begin readln(m); readln(k); readln(n); for i:=1 to n do begin read(f[i]);s[i]:=i; end;readln; run(1,n); i:=0; while i<n do begin inc(i); while (i+1<=n) and (f[i]=f[i+1]) do begin inc(i); s[i]:=s[i-1]; end; end; l:=n-abs(n div m)*(k+1); if k+1>l then k:=abs(n div m)*k+l else k:=abs(n div m)*k+k+1; k:=k+1; l:=k; for i:=k to n do if s[l]>s[i] then l:=i; writeln(f[l]); end; begin while not eof do main; end. Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator