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.