include stdio include math int main void double diag pryam double tx t

 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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <stdio.h>
#include <math.h>
int main (void)
{
double diag, pryam;
double r, X, Y, x, y, tx, ty;
while (scanf ("%lf", &r), r!=-1 )
{
scanf ("%lf%lf%lf%lf", &X, &Y, &x, &y);
if (Y==y)
{
if (X>x) printf ("west %.10lf\n", fabs(x-X));
else printf ("east %.10lf\n", fabs(x-X));
printf ("\n");
continue;
}
if (X==x)
{
if (Y>y) printf ("south %.10lf\n", fabs(y-Y));
else printf ("north %.10lf\n", fabs(y-Y));
printf ("\n");
continue;
}
if (fabs (x-X)==fabs(y-Y))
{
if ((x<X)&&(y<Y)) printf ("southwest ");
if ((x<X)&&(y>Y)) printf ("northwest ");
if ((x>X)&&(y<Y)) printf ("southeast ");
if ((x>X)&&(y>Y)) printf ("northeast ");
printf ("%.10lf\n\n", sqrt((double)2)*fabs(x-X));
continue;
}
if (fabs(X-x)>fabs(Y-y))
{
diag=sqrt(2.0)*fabs(Y-y);
pryam=fabs(X-x)-fabs(Y-y);
ty=Y;
if (X<x) tx=X-pryam;
if (X>x) tx=X+pryam;
if (sqrt(tx*tx+ty*ty)<r)
{
if (X>x) printf ("west %.10lf\n", fabs(x-X));
else printf ("east %.10lf\n", fabs(x-X));
if ((x<X)&&(y<Y)) printf ("southwest ");
if ((x<X)&&(y>Y)) printf ("northwest ");
if ((x>X)&&(y<Y)) printf ("southeast ");
if ((x>X)&&(y>Y)) printf ("northeast ");
printf ("%.10lf\n\n", diag);
}
else
{
if ((x<X)&&(y<Y)) printf ("southwest ");
if ((x<X)&&(y>Y)) printf ("northwest ");
if ((x>X)&&(y<Y)) printf ("southeast ");
if ((x>X)&&(y>Y)) printf ("northeast ");
printf ("%.10lf\n", diag);
if (X>x) printf ("west %.10lf\n", fabs(x-X));
else printf ("east %.10lf\n", fabs(x-X));
printf ("\n");
}
continue;
}
if (fabs(X-x)<fabs(Y-y))
{
diag=sqrt(2.0)*fabs(X-x);
pryam=fabs(Y-y)-fabs(X-x);
tx=X;
if (Y<y) ty=Y+pryam;
if (Y>y) ty=Y-pryam;
if (sqrt(tx*tx+ty*ty)<r)
{
if (Y>y) printf ("south %.10lf\n", pryam);
else printf ("north %.10lf\n", pryam);
if ((x<X)&&(y<Y)) printf ("southwest ");
if ((x<X)&&(y>Y)) printf ("northwest ");
if ((x>X)&&(y<Y)) printf ("southeast ");
if ((x>X)&&(y>Y)) printf ("northeast ");
printf ("%.10lf\n\n", diag);
}
else
{
if ((x<X)&&(y<Y)) printf ("southwest ");
if ((x<X)&&(y>Y)) printf ("northwest ");
if ((x>X)&&(y<Y)) printf ("southeast ");
if ((x>X)&&(y>Y)) printf ("northeast ");
printf ("%.10lf\n", diag);
if (Y>y) printf ("south %.10lf\n", pryam);
else printf ("north %.10lf\n", pryam);
printf ("\n");
}
continue;
}
}
return 0;
}