Ctrl K

Башни разной высоты

Средняя
Нужно построить башни, по одной на каждый элемент массива limits: высота i-й башни — целое положительное число не больше limits[i]. Никакие две башни не должны быть одинаковой высоты. Верните наибольшую возможную сумму высот всех башен. Если назначить высоты по этим правилам нельзя, верните -1.
Пример 1
limits=[4, 6, 4, 2] → 15

Высоты 4, 6, 3, 2: все разные и не выше своих пределов, в сумме 15. Две башни с пределом 4 не могут обе быть высотой 4.

Пример 2
limits=[3, 1, 1] → -1

Двум башням с пределом 1 обеим нужна высота 1 — разных высот не получится, ответ -1.

Ограничения
  • 1 ≤ len(limits) ≤ 10⁵
  • 1 ≤ limits[i] ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамое большое число из кусков СредняяСтудии для записи СредняяНизко — высоко — низко СредняяСтрого низко — высоко СредняяОтменить как можно меньше встреч Средняя
загружаем Python…
Вход
limits=[4, 6, 4, 2]
Ожидается
15

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