-
Автор темы
- #1
Файл с решением задачи на C++:
Пожалуйста, авторизуйтесь для просмотра ссылки.
.Сложность алгоритма - O(1).
Время решения: 12 минут.
Идея алгоритма:
Так как периметр прямоугольника - всегда четное число, то мы можем сразу отмести варианты с нечетным P.
Дальнейшие действия должны основываться на количестве способов получить P/2 (назовем Sum), суммируя два числа от 1 до Sum - 1 включительно. Несложно догадаться, что список вариантов всегда будет иметь следующий вид:
1 Sum-1
2 Sum-2
...
Sum-1 1
Итоговое количество пар вариантов - Sum-1 при любых входных данных, удовлетворяющих условию.
Также важно предусмотреть вариант, где P < 4. Ответв в таких случаях всегда будет 0.
Последнее редактирование: