lfwdj1992 2008-02-25 00:39:00
点我顶贴
收藏
删除
这是我的代码,到底哪错了呢?
var
a:array[1..20,1..20] of 0..500;
b:array[0..500] of record
pd:boolean;
zzb:1..20;
hzb:1..20;
end;
c:array[1..400] of record
gs:integer;
zzb:1..20;
hzb:1..20;
end;
i,j,l,t:integer;
m,n:1..20;
k:1..1000;
s:longint;
begin
readln(m,n,k);
for i:=0 to 500 do
b[i].pd:=false;
for i:=1 to m do
for j:=1 to n do
begin
if j<>n then read(a[i,j])
else readln(a[i,j]);
with b[a[i,j]] do
begin
pd:=true;
zzb:=i;
hzb:=j;
end;
end;
b[0].pd:=false;
t:=1;
for l:=500 downto 1 do
begin
if b[l].pd then
with c[t] do
begin
gs:=l;
zzb:=b[l].zzb;
hzb:=b[l].hzb;
end;
inc(t);
end;
s:=s+c[1].gs;
k:=k-1-c[1].zzb;
for i:=1 to t-1 do
if (k-abs(c[i+1].zzb-c[i].zzb)-abs(c[i+1].hzb-c[i].hzb)-1)>=(c[i+1].zzb+1) then
s:=s+c[i+1].gs
else break;
write(s);
end.