比赛 |
暑假培训B班二测 |
评测结果 |
AAAAAAEA |
题目名称 |
劣质的草 |
最终得分 |
87 |
用户昵称 |
如烟 |
运行时间 |
0.136 s |
代码语言 |
Pascal |
内存使用 |
3.99 MiB |
提交时间 |
2012-07-22 11:23:19 |
显示代码纯文本
type
integer=longint;
const
t:array[1..8,1..2] of integer=((-1,0),(0,-1),(1,0),(0,1),
(1,-1),(-1,-1),(-1,1),(1,1));
var
i,j,n,m,c,q:integer;
a:array[0..1001,0..1001] of integer;
procedure try(k,x,y,new:integer);
var
i:integer;
begin
for i:=1 to 8 do
if (x+t[i,1]>0)and(x+t[i,1]<=c)and
(y+t[i,2]>0)and(y+t[i,2]<=n) and
(a[x+t[i,1],y+t[i,2]]>0)and
(a[x+t[i,1],y+t[i,2]]<>new) then
begin
a[x+t[i,1],y+t[i,2]]:=new;
try(k+1,x+t[i,1],y+t[i,2],new);
end;
end;
begin
assign(input,'badgras.in');
reset(input);
assign(output,'badgras.out');
rewrite(output);
read(c,n);
m:=0;
for i:=1 to c do
for j:=1 to n do
begin
read(a[i,j]);
if a[i,j]>m then m:=a[i,j];
end;
q:=m;
for i:=1 to c do
for j:=1 to n do
if (a[i,j]>0) and (a[i,j]<=q) then
begin
m:=m+1;
a[i,j]:=m;
try(1,i,j,m);
end;
write(m-q);
close(input);
close(output);
end.