ГлавнаяСборникиТурнирыРазделыФорумыУчастникиПечатьПомощьО системе

Турниры > Алгоритмы и структуры данных — 2020. Набор задач 4 > задача:


A. Странная функция

Алгоритмы и структуры данных — 2020. Набор задач 4

Старт: 16.окт.2020 в 08:00:00
Финиш: 30.окт.2021 в 08:00:00
Турнир завершён!
• Турнирная таблица

Задачи турнира

• Подсказки к задачам
• A. Странная функция
• B. Несчастливые дни
• C. Распределение студентов
• D. Макс и бельевая верёвка
• E. Экспериментальный отбор
• F. Экзаменационные билеты
• G. Игра с разрезанием
• H. Наибольшая общая подпоследо...

Обратная связь

Если у вас есть предложения или пожелания по работе Contester, посетите форум сайта www.contester.ru.

Лимит времени 2000/2000/2000/2000 мс. Лимит памяти 65536/65536/65536/65536 Кб.

Странная функция
Странная функция
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Васе дали задание — вычислить значение сложной рекурсивной функции F, принимающей три аргумента a, b и c.

Функция F определена следующим образом (запись X % M означает взятие остатка от деления X на M):

  • Если a ≤ 0 или b ≤ 0 или c ≤ 0, то F(a, b, c) = 1;
  • Если a > 30, то F(a, b, c) = F(30, b, c);
  • Если b > 30, то F(a, b, c) = F(a, 30, c);
  • Если c > 30, то F(a, b, c) = F(a, b, 30);
  • Если a > b и a > c, то F(a, b, c) = (F(a - 2, b, c) + F(a - 1, b - 1, c) + F(a - 1, b, c - 1)) % M;
  • Если b > a и b > c, то F(a, b, c) = (F(a, b - 2, c) + F(a, b - 1, c) + F(a, b - 1, c - 1)) % M;
  • Если c > a и c > b, то F(a, b, c) = (F(a, b, c - 3) + F(a - 1, b, c - 1) + F(a, b - 1, c - 1)) % M;
  • Во всех остальных случаях F(a, b, c) = (F(a - 1, b, c) + F(a, b - 1, c) + F(a, b, c - 1)) % M;

Вася расстраивается, потому что его программа выдаёт ответ только через несколько часов, и сетует на медленный компьютер.

Попробуйте помочь ему определить величину F для заданных a, b и c.

Входные данные

Ввод содержит целые числа a, b, c, M (0 ≤ a, b, c ≤ 104, 2 ≤ M ≤ 100).

Выходные данные

Выведите одно целое число — значение F(a, b, c).

Примеры

Входные данные
3 2 3 100
Выходные данные
55
Входные данные
5 5 5 97
Выходные данные
28
Для отправки решений необходимо выполнить вход.

www.contester.ru