讨论 / 为什么没AC?
zsken 2012-07-17 19:27:00
点我顶贴 收藏 删除
var a:array[0..400,1..3]of longint;

n,m,x,y,i,j,num,s,max,x1,y1,time,t:longint;

procedure qsort(l,r:longint);

var i,j,k:longint;

begin

i:=l;j:=r;k:=a[(l+r)div 2,3];

repeat

while a[i,3]>k do inc(i);

while a[j,3]<k do dec(j);

if i<=j then begin

a[0]:=a[i];

a[i]:=a[j];

a[j]:=a[0];

inc(i);

dec(j);

end;

until i>j;

if i<r then qsort(i,r);

if j>l then qsort(l,j);

end;

begin

readln(n,m,time);

num:=0;

for i:=1 to n do begin

for j:=1 to m do begin

read(s);

if s>0 then begin

inc(num);

a[num,1]:=i;

a[num,2]:=j;

a[num,3]:=s;

end;

end;

readln;

end;

qsort(1,num);

max:=0;x:=0;y:=a[1,2];t:=0;

for i:=1 to n do begin

x1:=a[i,1];y1:=a[i,2];

if t+abs(x1-x)+abs(y1-y)+x1+1<=time then begin

t:=t+abs(x1-x)+abs(y1-y)+1;

x:=x1;

y:=y1;

max:=max+a[i,3];

end else break;

end;

writeln(max);

end.

查看更多回复
提交回复