Задача
Заданы размеры прямоугольной двери [latex]a[/latex], [latex]b[/latex] и размеры шкафа, который имеет форму прямоугольного параллелепипеда [latex]x[/latex], [latex]y[/latex], [latex]z[/latex]. Можно ли пронести шкаф сквозь дверь, если проносить его разрешается так, чтобы каждое ребро шкафа было параллельно или перпендикулярно стороне двери.
Входные данные
Пять действительных чисел [latex]a[/latex], [latex]b[/latex], [latex]x[/latex], [latex]y[/latex], [latex]z[/latex] ( [latex] 0\;\lt\;a,\;b,\;x,\;y,\;z\;\lt\;10[/latex] ).
Выходные данные
Вывести [latex]1[/latex], если шкаф можно свободно пронести сквозь дверь и [latex]0[/latex] в противоположном случае.
Тесты
Входные данные | Выходные данные |
---|---|
[latex]5\;7\;4\;6\;8[/latex] | [latex]1[/latex] |
[latex]1\;4\;2\;3\;6[/latex] | [latex]0[/latex] |
[latex]2.9\;6.7\;5.1\;3.7\;1.0[/latex] | [latex]1[/latex] |
[latex]4\;6\;6\;4\;3[/latex] | [latex]1[/latex] |
[latex]1.5\;8\;9.9\;2\;7.5[/latex] | [latex]0[/latex] |
[latex]2\;2\;2\;2\;2[/latex] | [latex]0[/latex] |
[latex]2\;3\;7\;8\;8[/latex] | [latex]0[/latex] |
[latex]5\;6\;2\;4\;3.5[/latex] | [latex]1[/latex] |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <iostream> using namespace std; int main() { // Новый шкаф double a, b, x, y, z; cin >> a >> b >> x >> y >> z; if ((x < a && y < b) || (y < a && x < b) || (y < a && z < b) || (z < a && y < b) || (x < a && z < b) || (z < a && x < b)) { cout << 1; } else { cout << 0; } return 0; } |
Решение
Шкаф можно пронести через дверь тогда и только тогда, когда ширина и высота его грани, параллельной дверному проему, меньше ширины и высоты двери.
Имеем шесть возможных вариантов ширины и высоты грани шкафа — [latex](x,y)[/latex], [latex](y,x)[/latex], [latex](y,z)[/latex], [latex](z,y)[/latex], [latex](x,z)[/latex], [latex](z,x)[/latex]
Сравнивая их с размерами двери определяем, можно ли пронести шкаф сквозь дверь.
Ссылки
Условия задачи на e-olymp
Код задачи на ideone