讨论 / 谁来救救我
kingoffighters 2010-09-12 08:27:00
点我顶贴 收藏 删除
begin

ii:=i;jj:=j;

m:=w[b[(i+j) div 2]];

repeat

while w[b[i]]>m do inc(i);

while w[b[j]]<m do

dec(j);

if i<=j then

begin

t:=b[i];

b[i]:=b[j];

b[j]:=t;

inc(i);

dec(j);

end;

until i>j ;

if ii<j then hs(ii,j);

if jj>i then hs(i,jj);

end;

begin

assign(input,’e:/i.in’);

assign(output,’e:/i.out’);

reset(input);

rewrite(output);

readln(n,k);

for i:=1 to 10 do

read(e[i]);

readln;

for i:=1 to n do

begin

read(w[i]);

b[i]:=i;end;

hs(1,n);

for i:=1 to n do

begin

c[i]:=(i-1) mod 10+1;

w[b[i]]:=w[b[i]]+e[c[i]];

end;

hs(1,n);

for i:=1 to k-1 do

write(b[i],’ ’);

write(b[k]);

close(input);

close(output);

end.

这是代码,谁能告诉我我是思路错了呢,还是代码有问题啊。。。我是先哈希排序,然后重新求值,再哈希排序。。。

#1 狼崖雪@2010-09-12 08:27:00
回复 删除
神人那、、

貌似不能用文件操作的、、

查看更多回复
提交回复