讨论 / 没输出,求救!!
jarvistam 2013-11-28 19:26:42
点我顶贴 收藏 删除
SID1031008

为什么老是没输出?

#1 jarvistam@2013-11-28 19:27:13
回复 删除
type jl=record

b:longint;

w:longint;

end;

var n,k,i:longint;

a:array[0..1000000]of jl;

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

procedure sort(r,l:longint);

var i,j,x,t:longint;

begin

i:=r;j:=l;x:=(i+j)div 2;

repeat

while (a[i].w>a[x].w)or((a[i].w=a[x].w)and(a[i].b<a[x].b)) do inc(i);

while (a[j].w<a[x].w)or((a[j].w=a[x].w)and(a[i].b>a[x].b)) do dec(j);

if i<=j then

begin

t:=a[i].w;

a[i].w:=a[j].w;

a[j].w:=t;

t:=a[i].b;

a[i].b:=a[j].b;

a[j].b:=t;

inc(i);

dec(j);

end;

until i>j;

if r<j then sort(r,j);

if i<l then sort(i,l);

end;

begin

read(n,k);

if (n=0)or(k=0)then begin writeln(' ');exit;end;

for i:=1 to 10 do

read(e[i]);

for i:=1 to n do

begin

read(a[i].w);

a[i].b:=i;

end;

sort(1,n);

for i:=1 to n do

a[i].w:=a[i].w+e[(i-1) mod 10+1];

sort(1,n);

for i:=1 to k do

write(a[i].b,' ');

end.

#2 jarvistam@2013-11-28 19:27:49
回复 删除
type jl=record

b:longint;

w:longint;

end;

var n,k,i:longint;

a:array[0..1000000]of jl;

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

#3 jarvistam@2013-11-28 19:28:04
回复 删除
procedure sort(r,l:longint);

var i,j,x,t:longint;

begin

i:=r;j:=l;x:=(i+j)div 2;

repeat

while (a[i].w>a[x].w)or((a[i].w=a[x].w)and(a[i].b<a[x].b)) do inc(i);

while (a[j].w<a[x].w)or((a[j].w=a[x].w)and(a[i].b>a[x].b)) do dec(j);

if i<=j then

begin

t:=a[i].w;

a[i].w:=a[j].w;

a[j].w:=t;

t:=a[i].b;

a[i].b:=a[j].b;

a[j].b:=t;

inc(i);

dec(j);

end;

until i>j;

if r<j then sort(r,j);

if i<l then sort(i,l);

end;

#4 jarvistam@2013-11-28 19:28:11
回复 删除
begin

read(n,k);

if (n=0)or(k=0)then begin writeln(' ');exit;end;

for i:=1 to 10 do

read(e[i]);

for i:=1 to n do

begin

read(a[i].w);

a[i].b:=i;

end;

sort(1,n);

for i:=1 to n do

a[i].w:=a[i].w+e[(i-1) mod 10+1];

sort(1,n);

for i:=1 to k do

write(a[i].b,' ');

end.

#5 jarvistam@2013-11-29 00:09:48
回复 删除
额,搞定了,j 打成i
查看更多回复
提交回复