def solve(n, a, x, b, y):
# Список для хранения установки фонарей (координата и радиус действия)
result = []
# Текущая позиция на улице
current_position = 1
# Счетчики для использования фонарей типа A и B
a_left = a
b_left = b
while current_position <= n:
# Попробуем поставить фонарь так, чтобы он покрыл как можно больше домов
if a_left > 0 and b_left > 0:
# Определяем зоны покрытия фонарей типа A и B
a_cover = min(n, current_position + x) # дома, которые покрывает фонарь A
b_cover = min(n, current_position + y) # дома, которые покрывает фонарь B
# Выбираем лучший фонарь, который покрывает больше домов
if a_cover >= b_cover:
# Ставим фонарь A
result.append((current_position, x))
current_position = a_cover + 1 # Переходим на следующий дом, который еще не освещен
a_left -= 1 # Использовали один фонарь A
else:
# Ставим фонарь B
result.append((current_position, y))
current_position = b_cover + 1 # Переходим на следующий дом, который еще не освещен
b_left -= 1 # Использовали один фонарь B
elif a_left > 0:
# Если остались только фонари A
result.append((current_position, x))
current_position = min(n, current_position + x) + 1
a_left -= 1
elif b_left > 0:
# Если остались только фонари B
result.append((current_position, y))
current_position = min(n, current_position + y) + 1
b_left -= 1
else:
# Если фонарей недостаточно
print(-1)
return
# Вывод результата
for pos, radius in result:
print(pos, radius)
# Пример использования
n = 10
a = 3
x = 2
b = 2
y = 3
solve(n, a, x, b, y)