讨论 / why?完全没错的题会栈溢出!
koukou 2013-06-21 06:15:00
点我顶贴 收藏 删除
program magic;

type aa=record

a,b:longint;

end;

var

n,i,j,k,q:longint;

w:array[0..50000] of aa;

e:array[1..10] of longint;

procedure qs(s,t:longint);

var

i,j,m:longint; x:aa;

begin

i:=s;j:=t; m:=w[(i+j) div 2 ].a;

repeat

while (w[i].a>m) or ((w[i].a=m) and (w[i].b<w[(i+j) div 2].b))do inc(i);

while (w[j].a<m) or ((w[i].a=m) and (w[i].b>w[(i+j) div 2].b)) do dec(j);

if i<=j then

begin

x:=w[i];w[i]:=w[j];w[j]:=x;

inc(i);dec(j);

end;

until i>j ;

if i<t then qs(i,t);

if j>s then qs(s,j);

end;

begin

readln(n,k);

for i:=1 to 10 do read(e[i]);

for i:=1 to n do begin read(w[i].a); w[i].b:=i; end;

qs(1,n);

for i:=1 to n do

begin

q:=(i-1) mod 10+1;

w[i].a:=w[i].a+e[q];

end;

qs(1,n);

for i:=1 to k do write(w[i].b,' ');

end.

查看更多回复
提交回复