状态编号: [查看该题]
状态: Unaccepted
测评机: Virmain[1]
得分: 0分
提交日期: 2008-5-21 21:46:00
有效耗时: 该状态没有记录
测试结果1: 运行错误|普通保护错误
测试结果2: 测试结果错误.错误结果为:0
正确结果应为:13
测试结果3: 运行错误|普通保护错误
测试结果4: 运行错误|普通保护错误
测试结果5: 无输出|运行超时
测试结果6: 运行错误|普通保护错误
测试结果7: 运行错误|普通保护错误
测试结果8: 运行错误|普通保护错误
测试结果9: 运行错误|普通保护错误
测试结果10: 测试结果错误.错误结果为:0
正确结果应为:801
提交代码:
program gogogo;
const dx:array[1..4]of integer=(1,0,-1,0);
dy:array[1..4]of integer=(0,1,0,-1);
var g:array[0..5001,0..5001]of longint;
you:array[0..5001,0..5001]of boolean;
my,mx,x1,x2,y1,y2,fik,w,i,i1,j1,xn,yn,ke,n,xi,yi,xj,yj:longint;
x,y:array[0..10000]of integer;
begin
my:=0;mx:=0;
readln(n);
readln(x1,y1);if x1>mx then mx:=x1;if y1>my then my:=y1;
readln(x2,y2);if x2>mx then mx:=x2;if y2>my then my:=y2;
for i:=1 to n do
begin
readln(xi,yi,xj,yj);
if xi>mx then mx:=xi;if yi>my then my:=yi;
if xj>mx then mx:=xj;if yj>my then my:=yj;
for i1:=xi to xj do
for j1:=yi to yj do you[i1,j1]:=true;
end;
x[0]:=x1;
y[0]:=y1;g[x1,y1]:=1;
i:=0;ke:=0;
repeat
for w:=1 to 4 do
begin
fik:=0;
xn:=x[i]+dx[w];
yn:=y[i]+dy[w];
if (xn=x2) and (yn=y2) then begin writeln(g[x[i],y[i]]);exit;end;
if you[xn,yn] then continue;
if not((xn<=mx) and (yn<=my) and (xn>0) and (yn>0)) then continue;
while not you[xn+dx[w],yn+dy[w]] do
begin
xn:=xn+dx[w];yn:=yn+dy[w];
if (xn=x2) and (yn=y2) then
begin writeln(g[x[i],y[i]]);exit;end;
if not((xn+dx[w]<=mx) and (yn+dy[w]<=my) and (xn+dx[w]>0) and (yn+dy[w]>0)) then
begin
fik:=1;
break;
end;
end;
if fik=1 then continue;
{ru dui:}
if g[xn,yn]=0 then
begin
g[xn,yn]:=g[x[i],y[i]]+1;
inc(ke);
x[ke]:=xn;y[ke]:=yn;
end;
end;
inc(i);
until i>ke;
if i>ke then writeln(0);
end.