Всероссийская олимпиада по информатике им. Мстислава Келдыша - 2025
A. Шашлык для методкомиссии
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Методкомиссия олимпиад по информатике во время своей работы очень любит готовить шашлыки на мангале. Однако у мангала есть особенность: после приготовления каждого шашлыка его температура падает.

Членам комиссии хочется приготовить как можно больше порций шашлыка, при этом для приготовления доступно неограниченное число порций шашлыка двух видов:

  • Первый вид требует температуры хотя бы $$$a$$$ градусов на момент начала приготовления, и после его приготовления температура мангала снижается на $$$x$$$ градусов.
  • Второй вид требует температуры хотя бы $$$b$$$ градусов на момент начала приготовления, и после его приготовления температура мангала снижается на $$$y$$$ градусов.

Изначально температура мангала равна $$$t$$$ градусов. Определите максимальное суммарное количество порций шашлыка, которое можно приготовить. При этом можно в любом порядке готовить разные типы шашлыка.

Обратите внимание, что температура мангала может стать отрицательной.

Входные данные

В первой строке дано одно число $$$t$$$ ($$$1 \le t \le 10^{12}$$$) — температура мангала в самом начале.

Во второй строке дано одно число $$$a$$$ ($$$1 \le a \le 10^{12}$$$) — необходимая температура для начала приготовления первого типа шашлыка.

В третьей строке дано одно число $$$b$$$ ($$$1 \le b \le 10^{12}$$$) — необходимая температура для начала приготовления второго типа шашлыка.

В четвертой строке дано одно число $$$x$$$ ($$$1 \le x \le 10^{12}$$$) — снижение температуры после приготовления первого типа шашлыка.

В пятой строке дано одно число $$$y$$$ ($$$1 \le y \le 10^{12}$$$) — снижение температуры после приготовления второго типа шашлыка.

Выходные данные

Выведите одно число — максимальное число порций шашлыка, которые можно приготовить.

Обратите внимание, что ответ может быть больше, чем возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C и C++, тип long в Java и C#). Язык Python будет корректно работать и с типом int.

Система оценки

В данной задаче $$$10$$$ тестов, помимо тестов из условия, каждый из них оценивается в $$$10$$$ баллов.

Решения, корректно работающие при $$$t, a, b, x, y \le 10$$$, наберут не менее $$$50$$$ баллов.

Примеры
Входные данные
10
3
4
2
1
Выходные данные
8
Входные данные
1
10
10
1
1
Выходные данные
0
Входные данные
28
14
5
2
4
Выходные данные
10
Примечание

В первом примере выгодно приготовить $$$7$$$ порций шашлыка второго вида, после этого температура мангала будет равна $$$3$$$ градусам, и мы можем приготовить ещё одну порцию шашлыка первого вида.

Во примере мы не можем приготовить ни один из видов шашлыка, потому что мангал слишком холодный.

В третьем примере выгодно приготовить $$$8$$$ порций шашлыка первого вида, после этого можно будет приготовить ещё $$$2$$$ порции шашлыка второго вида.

B. Хорошее начало
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Вам предстоит помочь строительной бригаде при укладке кровли на нескольких крышах. Для каждой из них вам необходимо определить, можно ли полностью покрыть крышу одинаковыми листами кровли.

Каждая крыша представляет собой прямоугольник размером $$$w \times h$$$, расположенный на плоскости с левым нижним углом в точке $$$(0, 0)$$$. Для укладки используются прямоугольные листы кровли размером $$$a \times b$$$. При этом:

  • Листы нельзя поворачивать (даже на $$$90^\circ$$$).
  • Листы не должны пересекаться между собой (но могут соприкасаться сторонами).
  • Листы могут выходить за пределы прямоугольника крыши.

На каждой крыше уже размещены два таких листа. Известно, что листы не пересекаются между собой и что каждый из них хотя бы частично покрывает крышу.

Вам необходимо для каждой крыши сказать, можно ли покрыть всю крышу, соблюдая все условия.

Входные данные

В первой строке дано целое число $$$n$$$ ($$$1 \le n \le 10^4$$$) — число крыш, для которых вам нужно решить задачу.

Далее в следующих $$$2n$$$ строках для каждой крыши идет ее описание в следующем формате:

  • В первой строке описания крыши даны четыре целых числа $$$w, h, a, b$$$ ($$$1 \le w, h, a, b \le 10^9$$$) — размеры крыши и размеры листов кровли, соответственно.
  • Во второй строке описания крыши даны четыре целых числа $$$x_1$$$, $$$y_1$$$, $$$x_2$$$ и $$$y_2$$$ ($$$-a + 1 \le x_1, x_2 \le w - 1, -b + 1 \le y_1, y_2 \le h - 1$$$) — координаты левых нижних углов уже положенных листов кровли. Гарантируется, что данные листы кровли не пересекаются.
Выходные данные

Для каждой крыши выведите Yes, если крышу возможно дозамостить, соблюдая все условия. Если замостить крышу, выполнив все требования, невозможно, выведите No.

Система оценки

В данной задаче $$$10$$$ тестов, помимо тестов из условия, каждый из них оценивается в $$$10$$$ баллов.

Гарантируется, что решения, корректно работающие при $$$a \le 2, b \le 2$$$, наберут не менее $$$50$$$ баллов.

Пример
Входные данные
3
6 5 2 3
-1 -2 5 4
4 4 2 2
0 0 3 1
2 2 1 1
0 0 1 1
Выходные данные
Yes
No
Yes
Примечание

В примере первую крышу можно дозамостить, например, следующим образом:

В примере вторую крышу полностью замостить невозможно:

Условие недоступно на русском языке
Условие недоступно на русском языке
Условие недоступно на русском языке
Условие недоступно на русском языке