eolymp
bolt
Try our new interface for solving problems
Problems

Кубики

Кубики

Незважаючи на те, що Петрик П’яточкін ходить до школи, він все ще продовжує гратися з кубиками. З однакових кубиків він викладає сходинки вздовж стіни. Для цього складає стовпчики з кубиків таким чином: \begin{itemize} \item перший стовпчик стоїть впритул до стіни; \item другий стовпчик стоїть впритул до стіни і впритул до першого стовпчика праворуч від нього; \item третій стовпчик стоїть впритул до стіни і впритул до другого стовпчика праворуч від нього і так далі... \end{itemize} Висоти стовпчиків не зростають при розгляданні сходинок зліва направо. Інакше кажучи, якщо \textbf{h_i} --- висота \textbf{i}‑го стовпчика, то \textbf{h_1} ≥ \textbf{h_2} ≥ \textbf{h_3} ≥ ... . Петрик встановлює кубики у деякій послідовності. Він встановив для себе такі правила: \begin{enumerate} \item кубик, розташований не на підлозі, можна поставити лише після кубика, на якому він має стояти. Інакше кажучи, не можна підсовувати кубики під вже поставлені; \item кубик, який знаходиться не у першому стовпчику, можна поставити лише після встановлення кубика, розташованого ліворуч від нього. \end{enumerate} Знайти кількість різних способів послідовного встановлення кубиків, у результаті яких виникнуть сходи з заданими висотами стовпчиків \textbf{h_1}, \textbf{h_2}, ..., \textbf{h_k}. Враховують лише ті способи, що задовольняють умови (\textbf{1}) та (\textbf{2}). \InputFile Перший рядок вхідного файлу містить натуральне число \textbf{k} --- кількість стовпчиків (\textbf{1} ≤ \textbf{k} ≤ \textbf{6}). Другий рядок вхідного файлу містить \textbf{k} натуральних чисел \textbf{h_1}, \textbf{h_2}, ..., \textbf{h_k} --- кількості кубиків відповідно у першому, другому, … , \textbf{k}‑му стовпчику сходів (\textbf{6} ≥ \textbf{h_1} ≥ \textbf{h_2} ≥ ... ≥ \textbf{h_k} ≥ \textbf{1}). \InputFile Єдиний рядок вихідного файлу має містити кількість різних способів розташування кубиків у задану конфігурацію згідно з вказаними правилами (\textbf{1}) і (\textbf{2}) при даних висотах стовпчиків. Для цього прикладу вкажемо допустимі послідовності розташування кубиків. Номер кожного кубика вказує, яким за рахунком його ставлять.
Time limit 1 second
Memory limit 32 MiB
Input example #1
3
2 2 1
Output example #1
5