3. 逃避系统警察
(d.pas/cpp/c)
【题目背景】
由于GJY在与神犇的世纪大战中输了,现在她必须躲避系统警察对她的追捕,不然她一辈子都不可以与神犇交朋友了。
【题目描述】
GJY躲藏到了一个茂密的森林里,森林里是一个m*n的矩阵,里面有m*n棵树,也就是说在每一整数位置上都有一棵树,水平或垂直相邻的两棵树的距离为1。而GJY就在某一个果树下面。
系统警察可是会爬树的,他带着他的电子网爬上了某一棵树,准备来抓捕GJY。如果警察和GJY之间没有其他的树,那么警察就会看到GJY,就会对她实施抓捕。现在聪明的我们已经知道了警察和GJY的位置,要求你编写一个程序来判断警察是否可以抓到GJY。
【输入格式】
第一行为n,表示一共有n组数据,每组数据的第一行为两个正整数ax和ay,表示系统警察的位置,每组数据的第二行为两个正整数bx和by,表示GJY所在的位置。
【输出格式】
一共有n行,如果可以抓到GJY输出“yes”,否则输出“no”。
【输入样例】
1
1 1
1 2
【输出样例】
yes
【数据范围】
对于100%的数据,n≤100000,1≤ax,ay,bx,by≤100000000.
var n,i,x,y,xx,yy:longint; function chu(x,y:longint):longint;//辗转相除法 var z:longint; begin if y=0 then exit(1); z:=x mod y; if z=0 then exit(y) else exit(chu(y,z)); end; begin readln(n); for i:=1 to n do begin readln(x,y); readln(xx,yy); if (chu(abs(x-xx),abs(y-yy))<>1) or (x=xx) and (abs(y-yy)>1) or (y=yy) and (abs(x-xx)>1) then writeln('no')//在对角线上没有树时就被抓 else writeln('yes'); end; end.