Здравствуйте, дали такую задачу:
Как мы знаем, Владимир периодически посещает плавательный бассейн. При взгляде сверху бассейн представляет собой прямоугольник размера W × H ; его юго-западный угол имеет координаты (0; 0), северо-восточный — ( W ; H ).
Владимир находился в точке с координатами ( X ; Y ), когда прозвенел звонок, оповещающий об окончании сеанса. Теперь Владимиру нужно плыть к ближайшему бортику, чтобы выйти из бассейна. Помогите ему определить, в какую сторону следует плыть.
Входные данные
Первая строка содержит целые числа W и H (1 ≤ W , H ≤ 100) — соответственно длину и ширину бассейна.
Первая строка содержит целые числа X и Y (0 ≤ X ≤ W , 0 ≤ Y ≤ H ) — координаты точки, в которой находится Владимир.
Выходные данные
Выведите один из символов N (север), E (восток), S (юг), W (запад), соответствующий направлению до ближайшего бортика.
Если подходящих ответов несколько, выведите любой из них.
Написал такой код
#include <stdio.h>
#include <iostream>
#include <math.h>
int main() {
int W;
int H;
int X;
int Y;
scanf("%d%d%d%d", &W, &H, &X, &Y);
if ((X <= (W / 2)) && (Y <= (H / 2))) {
if (X <= Y) {
printf("W");
}
else {
printf("S");
}
}
if ((X <= (W / 2)) && (Y >= (H / 2))) {
if (X <= (Y-(H/2))) {
printf("W");
}
else {
printf("N");
}
}
if ((X >= (W / 2)) && (Y <= (H / 2))) {
if ((X - W/2) <= Y) {
printf("E");
}
else {
printf("S");
}
}
if ((X >= (W / 2)) && (Y >= (H / 2))) {
if ((X - (W/2)) <= (Y - (H/2))) {
printf("E");
}
else {
printf("N");
}
}
}
Когда проверяю на сайте выдает ошибку на втором тесте, как можно упростить программу, и что бы она прошла все тесты.
Заранее спасибо!