eolymp
bolt
Try our new interface for solving problems
Məsələlər

Гиперкуб Junior

Гиперкуб Junior

\includegraphics{https://static.e-olymp.com/content/0f/0f2bc4d425994fad7dc96196e179eb52e5f38037.jpg} \textbf{N}-мерным гиперкубом (или \textbf{N}-кубом) со стороной \textbf{a} > \textbf{0} называется фигура в \textbf{N}-мерном евклидовом пространстве, которая строится следующим образом. Выберем в \textbf{N}-мерном пространстве какую-нибудь (\textbf{N-1})-мерную гиперплоскость. Построим в ней (\textbf{N-1})-куб. От каждой вершины этого куба проведем отрезок длины \textbf{a} перпендикулярно выбранной плоскости в одном и том же направлении. Концы этих отрезков будут очевидно также лежать в (\textbf{N-1})-мерной плоскости, параллельной исходной, и образовывать (\textbf{N-1})-куб. Выпуклая оболочка всех получившихся вершин (и исходного, и нового (\textbf{N-1})-куба) образует \textbf{N}-мерный гиперкуб. По определению \textbf{0}-куб -- это точка, которая является единственной вершиной этого куба. Нетрудно увидеть, что \textbf{1}-куб -- отрезок на прямой, \textbf{2}-куб -- квадрат на плоскости, \textbf{3}-куб -- обычный трёхмерный куб в трёхмерном пространстве. Гиперкубы большей размерности увидеть несколько сложнее, но тем не менее формально можно построить по определению. \textbf{k}-мерной гранью (или \textbf{k}-гранью) \textbf{N}-мерного гиперкуба называется такое пересечение его с \textbf{k}-мерной гиперплоскостью, которое не содержит внутренних точек граней большей размерности. Каждый \textbf{N}-куб имеет одну \textbf{k}-грань, совпадающую с ним самим. Можно доказать, что \textbf{k}-грани представляют собой \textbf{k}-кубы. \textbf{0}-грани -- это вершины \textbf{N}-куба, \textbf{1}-грани -- его ребра и т.д. Требуется вычислить количество \textbf{k}-мерных граней \textbf{N}-мерного гиперкуба. \InputFile В единственной строке задаются три целых числа \textbf{N}, \textbf{k} и \textbf{p} (\textbf{0} ≤ \textbf{K} ≤ \textbf{N} ≤ \textbf{10000}, \textbf{K} ≤ \textbf{2000}, \textbf{1} ≤ \textbf{p} ≤ \textbf{10^18}). \OutputFile В единственную строку выведите \textbf{K+1} число: остаток от деления на \textbf{p} количества \textbf{0}-граней, \textbf{1}-граней, ..., \textbf{K}-граней \textbf{N}-куба.
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 8 MiB
Giriş verilənləri #1
0 0 10
Çıxış verilənləri #1
1
Müəllif Неспирный В.Н.