var
bak:array [1..100000] of longint;
bh:array [1..100000] of longint;
n,i,j,k,t,m:longint;
a,b:longint;
sum:longint;
e:array [0..10] of longint;
code:longint;
procedure sort(i,j:longint);//取中排序
var
key,x1,x2,zet,tt:longint;
begin
if i<j then
begin
key:=bak[(i+j )shr 1];//中点的权值
x1:=i;
x2:=j;
tt:=bh[(i+j) shr 1];//中点的编号
repeat
while (bak[x1]>key) or ( (bak[x1]=key) and (bh[x1]<tt) ) do
inc(x1);
while (bak[x2]<key) or ( (bak[x2]=key) and (bh[x2]>tt) ) do
dec(x2);
if x1<=x2 then
begin
zet:=bak[x1];//交换权值和编号
bak[x1]:=bak[x2];
bak[x2]:=zet;
zet:=bh[x1];
bh[x1]:=bh[x2];
bh[x2]:=zet;
inc(x1);
dec(x2);
end;
until x1>x2;
if x1<j then sort(x1,j);
if x2>i then sort(i,x2);
end;
end;
begin
readln(n,k);
for i:=1 to 10 do
read(e[i]);
readln;
for i:=1 to n do
begin
read(bak[i]);
bh[i]:=i;
end;
sort(1,n);
for i:=1 to n do
begin
code:=((i-1) mod 10)+1;//求出分类编号
inc(bak[i],e[code]);
end;
sort (1,n);
for i:=1 to k do
write(bh[i],' ');
end.
不是空格问题……