#1 niyufan@2013-11-03 23:37:00
32054
回复
删除
program peanuts;
var
M,N,K,i,j,x,y,int,sum:integer;
P1,P2:array[0..500]of integer;
b:boolean;
procedure peanut(a,b:integer;var d:boolean);
var time:integer;
begin
if x<>0 then time:=abs(a-x)+abs(b-y)+1+a
else time:=a+1+a;
if K>=time then
begin
K:=K-time+a;
sum:=sum+i;
x:=a;
y:=b;
end
else d:=true;
end;
begin
read(M,N,K);
for i:=1 to m do
for j:=1 to n do
begin
read(int);
if int<>0 then
begin
P1[int]:=i;
P2[int]:=j;
end;
end;
for i:=500 downto 1 do
if (P1[i]<>0) and (b=false)
then peanut(P1[i],P2[i],b);
write(sum);
end.
过了