Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
В первом "Д" классе ажиотаж. Все ученики играют в популярную, увлекательную и неувядающую игру — "Морской бой". Но поскольку ребята еще маленькие и считать умеют с трудом (да и перемены короткие) — в классические правила внесен ряд упрощений.
Игровое поле — прямоугольник размером 1 х n. На этом поле каждый участник размещает a «однопалубных» и b «двухпалубных» кораблей. При размещении корабли не могут касаться друг друга сторонами. На рисунке приведен один из вариантов размещения кораблей при n = 10, a = 2 и b = 2.
Первоклассник Тимофей хочет создать собственную стратегию начальной расстановки флота. Для начала ему необходимо выяснить — сколько существует различных расстановок для конкретной тройки значений n, a и b. Поскольку Вы в глазах Тимофея — непререкаемый авторитет в области программирования, за помощью будущий стратег обратился к Вам.
В единственной строке входных данных через пробел записаны три целых числа n, a и b — размер поля и начальные количества кораблей размером в одну и две клетки соответственно.
Выведите одно целое число — количество различных вариантов размещения кораблей. Гарантируется, что ответ на задачу при любых входных данных не превосходит 1012.
1 ≤ n ≤ 50
0 ≤ a, b ≤ 20
Комментарий к первому примеру:
Комментарий ко второму примеру:
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|