ctsc2000Ö®¡¶±ùԭ̽ÏÕ¡·½âÌⱨ¸æ

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¸£½¨Ê¦´ó¸½ÖС¡·½Èó

ÎÊÌâ·ÖÎö£º

¡¡¡¡ÎÊÌâÒªÇó°Ñ±ù¿é´ÓÆðµãÍÆµ½ÖÕµã×îÉÙ´ÎÊý£¬¿ÉÒÔÓÃ×ø±ê£¨£ø£¬£ù£©±íʾ±ù¿éλÖõÄÿһÖÖ״̬¡£¸ù¾ÝÌâĿҪÇ󣬱ù¿é±ØÐëÔÙÅöµ½±ùɽʱ²ÅÄÜͣϣ¬ËùÒÔÎÒÃǾͿÉÒÔËã³ö±ùɽ´Óÿһ¸ñ£¬·Ö±ðÏòËĸö·½ÏòÍÆ£¬¿Éµ½´ïµÄλÖá£ËùÒÔÎÊÌâ¾Í¿ÉÒÔÓùã¶ÈËÑË÷À´½â¾ö¡£

Ëã·¨£º

¡¡¡¡²ÉÓöӽṹ£¬ÒÀ´ÎÀ©Õ¹³öÿһ¸ö½áµãµÄËùÄܵ½´ïµÄËùÓнáµã¡£ÎªÁËÔÚÈýáÊøÌõ¼þ¸ü¼òµ¥£¬ÎÒÃÇ¿ÉÒÔ°ÑÖյ㿴×÷ÊÇÒ»¿é±ß³¤ÎªÒ»µÄС±ùɽ¡£ÕâÑùÔÚÔÚ±ù¿éײµ½Õâ¿éС±ùɽʱ£¬³ÌÐò¾ÍÕÒµ½ÁËÕýÈ·½â¡£Èç¹ûÎÞ·¨¼ÌÐøÀ©Õ¹¶ÓÖеĵ㣬¼´¶ÓµÄÍ·Ö¸ÕëµÈÓÚβָÕ룬¾ÍÊä³öÎ޽⡣ÔÚ¼ÆËã±ù¿éÄܵ½´ïµÄλÖÃʱ£¬¿ÉÒÔ³¯Ò»¸ö·½ÏòËÑË÷£¬Ö±µ½ÕÒµ½Ò»¿éÄܵ²×¡±ù¿éǰ½øµÄ±ùɽΪֹ¡£

¡¡¡¡ÀýÈçÔÙÊäÈëÑùÀýÖжӵÄÀ©Õ¹Çé¿öÈçÏ£º
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡1£¬ 1-¡·2£¬1-¡·2£¬5-¡·4£¬5
¡¡¡¡ÔÙÀ©Õ¹µ½4£¬5ʱ£¬±ù¿éײµ½ÁË´ú±íÖÕµãµÄС±ùɽ£¬ËùÒÔÑùÀýµÄ×îÓÅÖµ¾ÍÊÇ3¡£

Ëã·¨ÓÅ»¯£º

¡¡¡¡ÓÉÓÚÊý¾ÝÔÚµØÍ¼µÄ´óСÉÏûÓÐÏÞÖÆ£¬²»ÄÜÒÔÒ»¸ö¶þάÊý×éÀ´±íʾµØÐΣ¬ËùÒÔÔÚ¼ÆËã±ù¿é¿Éµ½´ïλÖÃʱֻÄܶÔËùÓбùɽ½øÐÐËÑË÷¡£
¡¡¡¡ÎªÁËÌá¸ßÔÚ¼ÆËã±ù¿é¿Éµ½´ïµÄλÖÃʱËÙ¶È£¬¿ÉÒÔÔÚ¿ªÊ¼Ê±°´Ã¿Ò»¸ö·½¿éµÄËĸö×ø±êÏȽøÐÐÁËËÄ´ÎÅÅÐò£¬ÕâÑùÔÚ¼ÆËãʱֻҪÒÀ´Î²éÕÒÿһ¿é±ùɽ£¬ÔÙÕÒµ½Ò»¿éÄܵ²×¡±ù¿éǰ½ø±ùɽºó£¬±ù¿é¾ÍÍ£Ôڴ˱ùɽµÄÇ°Ãæ¡£
¡¡¡¡»¹¿ÉÒԼǼÏÂÿ¸ö½áµãµÄ¸¸Ç×£¬±ÜÃâ±ù¿éÀ´»ØÔÚÒ»¸öµØ·½Òƶ¯¡£ÔÚÀ©Õ¹µÄÿһ¸ö½áµãÓëÇ°ÃæËùÓнáµã½øÐбȽϣ¬±ÜÃâÖØ¸´¡£
¡¡¡¡ÔÚ¿Õ¼äÉÏ£¬¿ÉÒÔ°ÑÒ»¸ö±ùɽ¼Ç¼ÔÚÒ»¸öÖ¸ÕëÀï¡£ÕâÑùÔÚËÄ´ÎÅÅÐòÖУ¬Ö»Òª¶ÔÖ¸ÕëµÄµØÖ·½øÐÐÅÅÐò¡£

×ܽ᣺
¡¡¡¡±¾ÌâË㷨ûÓÐÊ²Ã´ÌØ±ð£¬µ«±àдÆðÀ´±È½ÏÂé·³¡£

³ÌÐò£º
¡¡¡¡{$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q-,R-,S-,T-,V+,X+}
¡¡¡¡{$M 65520,0,655360}
¡¡¡¡const filein='ctsc2000\ice\ice.00a';
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡{ctsc2000\ice\ice.oua}
¡¡¡¡type xy=record
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡x,y:integer;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡arrfa=array[1..8000]of byte;
¡¡¡¡¡¡¡¡¡¡¡¡arrd=record
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡x1,y1,x2,y2:integer;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡ard=^arrd;
¡¡¡¡¡¡¡¡¡¡var dl,dr,du,dd:array[1..4000]of ard;
¡¡¡¡¡¡¡¡¡¡¡¡st,en:xy;
¡¡¡¡¡¡¡¡¡¡¡¡n,bro:integer;
¡¡¡¡¡¡¡¡¡¡procedure ql(x,y:integer);
¡¡¡¡¡¡¡¡¡¡¡¡var i,j,k:integer;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡p:ard;
¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡i:=x;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡j:=y;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡k:=dl[(x+y)div 2]^.x1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡repeat
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡while dl[i]^.x1<k do inc(i);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡while dl[j]^.x1>k do dec(j);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡if i<=j then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡p:=dl[i];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dl[i]:=dl[j];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dl[j]:=p;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡inc(i);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dec(j);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡until i>j;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡if i<y then ql(i,y);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡if j>x then ql(x,j);
¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡procedure qr(x,y:integer);
¡¡¡¡¡¡¡¡¡¡¡¡var i,j,k:integer;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡p:ard;
¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡i:=x;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡j:=y;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡k:=dr[(x+y)div 2]^.x2;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡repeat
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡while dr[i]^.x2<k do inc(i);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡while dr[j]^.x2>k do dec(j);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if i<=j then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡p:=dr[i];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dr[i]:=dr[j];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dr[j]:=p;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡inc(i);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dec(j);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡until i>j;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if i<y then qr(i,y);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if j>x then qr(x,j);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡procedure qu(x,y:integer);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡var i,j,k:integer;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡p:ard;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡i:=x;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡j:=y;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡k:=du[(x+y)div 2]^.y1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡repeat
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡while du[i]^.y1<k do inc(i);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡while du[j]^.y1>k do dec(j);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if i<=j then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡p:=du[i];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡du[i]:=du[j];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡du[j]:=p;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡inc(i);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dec(j);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡until i>j;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if i<y then qu(i,y);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if j>x then qu(x,j);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡procedure qd(x,y:integer);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡var i,j,k:integer;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡p:ard;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡i:=x;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡j:=y;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡k:=dd[(x+y)div 2]^.y2;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡repeat
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡while dd[i]^.y2<k do inc(i);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡while dd[j]^.y2>k do dec(j);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if i<=j then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡p:=dd[i];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dd[i]:=dd[j];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dd[j]:=p;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡inc(i);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dec(j);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡until i>j;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if i<y then qd(i,y);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if j>x then qd(x,j);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡procedure init;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡var i:integer;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡assign(input,filein);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡reset(input);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡readln(n);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡readln(st.x,st.y);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡readln(en.x,en.y);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡for i:=1 to n do
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡new(dl[i]);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡for i:=1 to n do
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡readln(dl[i]^.x1,dl[i]^.y1,dl[i]^.x2,dl[i]^.y2);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dr[i]:=dl[i];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡du[i]:=dl[i];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dd[i]:=dl[i];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡inc(n);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡new(dl[n]);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dl[n]^.x1:=en.x;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dl[n]^.x2:=en.x;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dl[n]^.y1:=en.y;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dl[n]^.y2:=en.y;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dr[n]:=dl[n];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡du[n]:=dl[n];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dd[n]:=dl[n];¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ql(1,n);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡qr(1,n);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡qu(1,n);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡qd(1,n);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡close(input);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡procedure get(p:xy;f:byte;var re:xy);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡var i:integer;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡bro:=0;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡case f of
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1: begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡re.x:=p.x;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡i:=0;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡repeat
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡inc(i);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡until(i>n)or((dd[i]^.y1>p.y)and(dd[i]^.x1<=p.x)and(dd[i]^.x2>=p.x));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if i=n+1 then bro:=1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡re.y:=dd[i]^.y1-1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if (dd[i]^.x1=en.x)and(dd[i]^.y1=en.y)then ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡bro:=-1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡2: begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡re.y:=p.y;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡i:=1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡repeat
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡inc(i);

¡¡¡¡¡¡until(i>n)or((dl[i]^.x1>p.x)and(dl[i]^.y1<=p.y)and(dl[i]^.y2>=p.y));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if i=n+1 then bro:=1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡re.x:=dl[i]^.x1-1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if (dl[i]^.x1=en.x)and(dl[i]^.y1=en.y)then ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡bro:=-1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡3: begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡re.x:=p.x;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡i:=n+1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡repeat
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dec(i);

¡¡¡¡¡¡until(i=0)or((du[i]^.y2<p.y)and(du[i]^.x1<=p.x)and(du[i]^.x2>=p.x));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if i=0 then bro:=1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡re.y:=du[i]^.y2+1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if (du[i]^.x1=en.x)and(du[i]^.y1=en.y)then ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡bro:=-1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡4: begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡re.y:=p.y;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡i:=n+1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡repeat
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dec(i);

¡¡¡¡¡¡until(i=0)or((dr[i]^.x2<p.x)and(dr[i]^.y1<=p.y)and(dr[i]^.y2>=p.y));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if i=0 then bro:=1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡re.x:=dr[i]^.x2+1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if (dr[i]^.x1=en.x)and(dr[i]^.y1=en.y)then bro:=-1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡procedure do1;
¡¡¡¡¡¡¡¡¡¡¡¡var a:array[1..8000]of xy;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡fa:arrfa;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡h1,h2,l,i,t,j,k:integer;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡re:xy;
¡¡¡¡¡¡¡¡¡¡¡¡function ok(r:xy):boolean;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡var i:integer;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ok:=false;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡for i:=1 to l do
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if (a[i].x=r.x)and(a[i].y=r.y) then exit;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ok:=true;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡h1:=1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡h2:=1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡l:=1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡a[1]:=st;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡fa[1]:=0;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡t:=0;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡repeat
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡inc(t);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡for i:=h1 to h2 do
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡for j:=1 to 4 do
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if j<>fa[i] then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡get(a[i],j,re);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if bro=-1 then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡writeln(t);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡halt;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if (bro=0)and(ok(re)) then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡inc(l); { 1 }
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡a[l]:=re; {4 2}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡fa[l]:=(j+1)mod 4+1; { 3 }
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡h1:=h2+1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡h2:=l;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡until(h1>h2);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡writeln(0);
¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡init;
¡¡¡¡¡¡¡¡¡¡¡¡do1;
¡¡¡¡¡¡¡¡¡¡end.

 
 
ÍøÕ¾µ¼º½ | ¹ØÓÚÊï¹â | ÁªÏµÎÒÃÇ | ÇëÌáÒâ¼û
Copyright © FuJian Sunshine Educational Info. Co.,Ltd.
¸£½¨Êï¹â½ÌÓý×ÊѶÓÐÏÞ¹«Ë¾ °æÈ¨ËùÓÐ