Аналіз алгоритму
Нехай – довжина, – ширина, – висота шафи. Шафу можна пронести в пройом дверей однією з трьох сторін: передом (прямокутник повинен входити в ), боком (прямокутник повинен входити в ) або верхом (прямокутник повинен входити в ).
Прямокутник входить в , якщо виконується одна з умов:
і
і
Реалізація алгоритму
Читаємо вхідні дані. Встановимо змінній flag
значення 0. Перебираємо всі три можливих розташування шафи в пройомі дверей. Якщо хоча б при одному з них шафа пройде в двері, встановимо flag = 1
.
scanf("%d %d %d %d %d", &a, &b, &c, &x, &y); flag = 0; if (((a <= x) && (b <= y)) || ((b <= x) && (a <= y))) flag = 1; if (((b <= x) && (c <= y)) || ((c <= x) && (b <= y))) flag = 1; if (((a <= x) && (c <= y)) || ((c <= x) && (a <= y))) flag = 1;
Залежно від значення flag
виводимо відповідь.
if (flag == 1) printf("YES\n"); else printf("NO\n");
Друге рішення. Задачу можна вирішити за допомогою однієї складної умови.
scanf("%d %d %d %d %d", &a, &b, &c, &x, &y); if (((a <= x) && (b <= y)) || ((b <= x) && (a <= y)) || ((b <= x) && (c <= y)) || ((c <= x) && (b <= y)) || ((a <= x) && (c <= y)) || ((c <= x) && (a <= y))) printf("YES\n"); else printf("NO\n");
Java реалізація
import java.util.*; public class Main { public static void main(String[] args) { Scanner con = new Scanner(System.in); int a = con.nextInt(); int b = con.nextInt(); int c = con.nextInt(); int x = con.nextInt(); int y = con.nextInt(); int flag = 0; if (((a <= x) && (b <= y)) || ((b <= x) && (a <= y))) flag = 1; if (((b <= x) && (c <= y)) || ((c <= x) && (b <= y))) flag = 1; if (((a <= x) && (c <= y)) || ((c <= x) && (a <= y))) flag = 1; if (flag == 1) System.out.println("YES"); else System.out.println("NO"); con.close(); } }
Python реалізація
a, b, c, x, y = map(int, input().split()) if (a <= x and b <= y) or (b <= x and a <= y) or (b <= x and c <= y) or (c <= x and b <= y) or (a <= x and c <= y) or (c <= x and a <= y): print("YES") else: print("NO")