Главное меню портала
• О портале
• Архив задач
• Карта архива задач
• Результаты тестов
• Ошибки тестирования
• Преподаватели
• Библиотечка
Рейтинг у учителя
• Рейтинг на портале
Начинающему
• Работа с порталом
• Курс для начинающего
• Архив задач начинающего
Олимпиаднику
• Архив задач олимпиадника
Олимпиады
Дистанционные олимпиады
• Положение олимпиады
Новое сообщениеОтправленые
Загрузка...
Время на прохождение теста: 1 секунд(а/ы).
Имя входного файла: input.txt
Имя выходного файла: output.txt

Автор: Бельский Андрей Владимирович

Функция
Описана рекурсивная функции с тремя параметрами F(a, b, c): 

если a ≤ 0 или b ≤ 0 или c ≤ 0, то F(a, b, c) = 1 
если a > 20 или b > 20 или c > 20, то F(a, b, c) = F(20, 20, 20) 
если a < b и b < c, то F(a, b, c) = F(a, b, c-1) + F(a, b-1, c-1) - F(a, b-1, c) 
иначе F(a, b, c) = F(a-1, b, c) + F(a-1, b-1, c) + F(a-1, b, c-1) - F(a-1, b-1, c-1) 

Однако, если указанную функцию реализовать напрямую, то даже для небольших значений a, b и c (например, a = 15, b = 15, c = 15), программа будет работать несколько часов! Необходимо реализовать эффективный алгоритм вычисления функции F, который успеет найти любое ее значение менее чем за одну секунду!
Входные данные:
Входной файл  содержит три целых числа a, b, c - параметры функции F (-104 ≤ a,b,c ≤ 104).
Выходные данные:
В выходной файл  выведите единственное число - значение функции F(a, b, c).

Примеры:
input.txt output.txt
1 1 1 1 2
2 2 2 2 4
3 10 4 6 523

Сложность задачи: 20%



Проверку могут осуществлять только зарегистрированные пользователи!


Показать обсуждение


На сайте гостей 17, зарегистрированных 0:
Сейчас онлайн только гости...
[Данные за последние 5 минут]