Ctrl K

Зеркальная улица

Средняя
На улице в ряд стоят count домов, count чётно. Каждый дом красят в один из трёх цветов; prices[i][j] — стоимость покраски дома i в цвет j + 1. Улица выглядит красиво, если выполнены два условия: - соседние дома разного цвета; - дома, стоящие на одинаковом расстоянии от двух концов улицы (дом i и дом count - 1 - i), тоже разного цвета. Верните наименьшую стоимость, за которую можно покрасить улицу красиво.
Пример 1
count=2, prices=[[4, 1, 6], [2, 1, 9]] → 3

Оба дома хотят второй цвет, но они соседи (и к тому же зеркальная пара). Лучше: дом 0 — второй цвет (1), дом 1 — первый (2), итого 3.

Пример 2
count=4, prices=[[1, 5, 5], [5, 1, 5], [1, 5, 5], [5, 1, 5]] → 4

Цвета 1, 2, 1, 2 стоят 4: соседи различаются, зеркальные пары тоже — у домов 0 и 3 цвета 1 и 2, у домов 1 и 2 — 2 и 1.

Пример 3
count=4, prices=[[1, 9, 9], [9, 1, 9], [9, 1, 9], [1, 9, 9]] → 20

Дома 1 и 2 — соседи, второй цвет может достаться только одному; дома 0 и 3 — зеркальная пара, первый цвет тоже только одному.

Ограничения
  • 2 ≤ count ≤ 10⁵, count чётно
  • len(prices) = count, len(prices[i]) = 3
  • 0 ≤ prices[i][j] ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМеньше всего прыжков до конца СредняяСамая прибыльная серия дней СредняяДобраться до последней клетки СредняяМаршруты тележки по складу СредняяДешёвый маршрут из угла в угол Средняя
загружаем Python…
Вход
count=2, prices=[[4, 1, 6], [2, 1, 9]]
Ожидается
3

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 94 теста на сервере, включая скрытые.