测试结果1: 运行错误|普通保护错误
测试结果2: 运行错误|普通保护错误
测试结果3: 运行错误|普通保护错误
测试结果4: 运行错误|普通保护错误
测试结果5: 运行错误|普通保护错误
测试结果6: 运行错误|普通保护错误
测试结果7: 运行错误|普通保护错误
测试结果8: 运行错误|普通保护错误
测试结果9: 运行错误|普通保护错误
测试结果10: 运行错误|普通保护错误
提交代码:
program endge;
var
n,m,k,i,j,a,b:longint;
t:array[1..100000,1..100000] of 0..1;
s:array[1..100000,1..100000] of real;
function min(x,y:real):real;
begin
if x>y then min:=y else min:=x;
end;
begin
readln(n,m);
readln(k);
fillchar(t,sizeof(t),0);
for i:=1 to k do
begin
readln(a,b);
t[b,a]:=1;
end;
for i:=1 to n do
if t[1,i]=1 then
begin
for j:=i to n do s[1,j]:=(j-1)+1.414;
break;
end
else s[1,i]:=i;
for i:=1 to m do
if t[i,1]=1 then
begin
for j:=i to m do s[j,1]:=(j-1)+1.414;
break;
end
else s[i,1]:=i;
for i:=2 to m do
for j:=2 to n do
if t[i,j]=1 then s[i,j]:=min(s[i-1,j]+1,min(s[i,j-1]+1,s[i-1,j-1]+1.414))
else s[i,j]:=min(s[i-1,j]+1,s[i,j-1]+1);
writeln(round(s[m,n]*100));
end.