Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача на silvertests

Вероника а Ученик (113), на голосовании 1 месяц назад
Помогите с задачей пожалуйста, не могу понять в чем ошибка, в результате пишет что выполнено только на 65%
задача:
Во время Крещенских купаний Вилли любит окунуться в прорубь, которая представляет собой прямоугольник размером NхM
метров. Для большей смелости Вилли опускает на воду деревянную шахматную доску и идёт переодеваться. После этого он возвращается, и видит, что доска находится на расстоянии x метров от одной из длинных сторон (не обязательно от ближайшей) и y метров от одной из коротких сторон. Плыть за доской он просто обязан. Какое минимальное расстояние необходимо преодолеть Вилли, чтобы доплыть до своей шахматной доски (размерами доски можно пренебречь)?

Входные данные
Программа получает на вход числа N, M, x, y.

Выходные данные
Программа должна вывести число метров, которое нужно преодолеть Вилли до доски.
Пример:
Входные данные
23
52
8
43
Выходные данные
8

Запрещенные операторы: min; max
мой код:

 #include 
#include
using namespace std;
int main()
{
double n, m, x, y;
cin >> n >> m >> x >> y;
if(x <= y && x <= n - x && x <= m - y)cout << x;
else{
if(y <= x && y <= n - x && y <= m - y)cout << y;
else{
if(n - x <= x && n - x <= y && n - x <= m - y)cout << n - x;
else{
if(m - y <= x && m - y <= y && m - y <= n - x)cout << m - y;

}
}
}


return 0;
}
Голосование за лучший ответ
Татьяна Просветленный (36374) 2 месяца назад
 #include  
#include

using namespace std;

int main()
{
double n, m, x, y;
cin >> n >> m >> x >> y;

double dist1 = x;
double dist2 = y;
double dist3 = n - x;
double dist4 = m - y;

double minDist = dist1;

if (dist2 < minDist) minDist = dist2;
if (dist3 < minDist) minDist = dist3;
if (dist4 < minDist) minDist = dist4;

cout << minDist;

return 0;
}
Результат
Celtic HammerМудрец (16453) 2 месяца назад
Похожие вопросы