https://pastein.ru/t/AUi

  скопируйте уникальную ссылку для отправки

Загрузка данных


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)