Top.Mail.Ru

Максимальное количество параллелограммов, которое можно собрать из N палочек, можно найти следующим образом:

1. Отсортируем палочки по их длине в порядке возрастания.

2. Заведем переменную cnt, которая будет считать количество параллелограммов.

3. Пройдемся по всем палочкам с конца до начала (в порядке убывания длины):

3.1. Если текущая палочка и следующая палочка имеют одинаковую длину, то можем собрать параллелограмм, добавляем 1 к cnt и пропускаем следующую палочку.

3.2. Если текущая палочка и следующая палочка имеют различную длину, то можем собрать параллелограмм с использованием только текущей палочки, добавляем 1 к cnt.

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

Таким образом, мы сначала собираем параллелограммы из палочек с одинаковой длиной, а затем стараемся использовать оставшиеся палочки максимально эффективно.

Сложность данного алгоритма составляет O(N log N) из-за сортировки палочек по их длине.

   
[metform form_id="1136"]