Решение задач с еще одной олимпиады

Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
1635588329570.png

Файл с решением задачи на 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.
 
Последнее редактирование:
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
1635588449175.png

Файл с решением задачи на C++:
Пожалуйста, авторизуйтесь для просмотра ссылки.
.
Сложность алгоритма - O(1).
Время решения: 8 минут.
Идея алгоритма:
Мы должны учитывать всего 2 случая "перемешивания" карточек: нам даны 1/3 и 1/2 числа, нам дано число и 1/2, либо 1/3. Исходя из этого достаточно просто сделать 3 условные конструкции, где мы будем проверять, какое число является исходным, есть ли оно вообще и какого делителя не хватает.
 
Последнее редактирование:
feel irl
Участник
Статус
Оффлайн
Регистрация
21 Дек 2018
Сообщения
677
Реакции[?]
294
Поинты[?]
16K
Я считаю, что имело бы смысл ещё и объяснять решения задач из олпроги\спортпроги, ибо независимо от сложности задачи ( например шэ всерос,рэ всерос) т.к не все понимают.
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
Всерос мне самому не покорился, сомневаюсь, что решу оттуда много задач :).
Постараюсь дополнить каждое из недавно опубликованных решений основной идеей алгоритма.
 
Сверху Снизу