比赛 |
搜索题... |
评测结果 |
ATWTTTTAAT |
题目名称 |
最大的湖 |
最终得分 |
30 |
用户昵称 |
思邈然 |
运行时间 |
6.009 s |
代码语言 |
Pascal |
内存使用 |
0.17 MiB |
提交时间 |
2014-11-04 19:40:36 |
显示代码纯文本
program cogs155;
var
map:array[0..100,0..100]of 0..1;
ax,ay:array[1..100]of integer;
n,m,k,i,ans:integer;
procedure dfs(s,x,y:integer);
begin
if ans<s then ans:=s;
if (x=n)and(y=m) then exit
else begin
if (map[x+1,y]=1)and(x<n) then begin
map[x+1,y]:=0;
dfs(s+1,x+1,y);
map[x+1,y]:=1; end;
if (map[x-1,y]=1)and(x>1) then begin
map[x-1,y]:=0;
dfs(s+1,x-1,y);
map[x-1,y]:=1; end;
if (map[x,y+1]=1)and(y<m) then begin
map[x,y+1]:=0;
dfs(s+1,x,y+1);
map[x,y+1]:=1; end;
if (map[x,y-1]=1)and(y>1) then begin
map[x,y-1]:=0;
dfs(s+1,x,y-1);
map[x,y-1]:=1; end;
end;
end;
begin
assign(input,'lake.in');reset(input);
assign(output,'lake.out');rewrite(output);
readln(n,m,k);
fillchar(map,sizeof(map),0);
for i:=1 to k do begin
readln(ax[i],ay[i]);map[ax[i],ay[i]]:=1;end;
for i:=1 to k do begin
map[ax[i],ay[i]]:=0;
dfs(1,ax[i],ay[i]);
map[ax[i],ay[i]]:=1;end;
writeln(ans);
close(input);close(output);
end.