-
Notifications
You must be signed in to change notification settings - Fork 0
/
catm.cpp
75 lines (64 loc) · 1.38 KB
/
catm.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
nclude <stdio.h>
#include <stdlib.h>
typedef struct point
{
int x;
int y;
}point;
int n,m;
bool cat(point rat, point c1, point c2)
{
point r;
r = rat
if(rat.x==0 || rat.x == (n-1) || rat.y==0 || rat.y == (m-1))
return true;
if(((rat.x+1==c1.x)&&(rat.y+1==c1.y)&&(rat.x-1==c2.x)&&(rat.y-1==c2.y))||((rat.x+1==c2.x)&&(rat.y+1==c2.y)&&(rat.x-1==c1.x)&&(rat.y-1==c1.y))||((rat.x-1==c1.x)&&(rat.y+1==c1.y)&&(rat.x+1==c2.x)&&(rat.y-1==c2.y))||((rat.x-1==c2.x)&&(rat.y+1==c2.y)&&(rat.x+1==c1.x)&&(rat.y-1==c1.y)))
return false;
//moving the mouse
if(((rat.x+1==c1.x)&&(rat.y+1==c1.y))||((rat.x+1==c2.x)&&(rat.y+1==c2.y)))//move left or up
{
//left
r.x = rat.x-1;
//up
r.y = rat.y+1;
}
if(((rat.x-1==c2.x)&&(rat.y-1==c2.y))||((rat.x-1==c1.x)&&(rat.y-1==c1.y)))//move right or down
{
//right
r.x = rat.x+1;
//down
r.y = rat.y-1;
}
if(((rat.x-1==c1.x)&&(rat.y+1==c1.y))||((rat.x-1==c2.x)&&(rat.y+1==c2.y)))//move up or right
{
//up
r.y = rat.y+1;
//right
r.x = rat.x+1;
}
if(((rat.x+1==c2.x)&&(rat.y-1==c2.y))||((rat.x+1==c1.x)&&(rat.y-1==c1.y)))//move left or down
{
//left
r.x = rat.x-1;
//down
r.y = rat.y-1;
}
}
int main()
{
scanf("%d %d",&n,&m);
int t;
scanf("%d",&t)
while(t != 0)
{
int a[n][m];
point rat, cat1, cat2;
scanf("%d %d %d %d %d %d", rat.x, rat.y, cat1.x, cat1.y, cat2.x, cat2.y);
if(cat(rat,cat1,cat2)==true)
printf("YES\n");
else if(cat(rat,cat1,cat2)==false)
printf("NO\n");
t--;
}
return 0;
}