1083 Timus answer/Решение задачи 1083


№1083
http://acm.timus.ru/problem.aspx?space=1&num=1083
ЖМИ ДАЛЕЕ>>>


РЕШЕНИЕ:

PASCAL


Var
N,K,T,M: LongInt;
C: Char;
Begin
Read(N);
Read(C,C);
K:=0;
While C='!' do begin
Read(C);
Inc(K);
End;
T:=N;
M:=T;
T:=T-K;
While T>0 do begin
M:=M*T;
T:=T-K;
End;
Writeln(M);
End.


1083. Факториалы!!!

Ограничение времени: 1.0 секунды
Ограничение памяти: 16 МБ
Определение 1. n!!…! = n(nk)(n−2k)…(n mod k), если n не делится на kn!!…! = n(nk)(n−2k)…k, если n делится наk (знаков ! в обоих случаях k штук).
Определение 2. X mod Y — остаток от деления X на Y.
Например, 10 mod 3 = 1; 3! = 3·2·1; 10!!! = 10·7·4·1.
Мы по заданным n и k смогли вычислить значение выражения из определения 1. А вам слабо?

Исходные данные

В единственной строке сначала дано целое число n, 1 ≤ n ≤ 10, затем ровно один пробел, затем k восклицательных знаков, 1 ≤ k ≤ 20.

Результат

Выведите одно число — n!!…!

Пример

исходные данныерезультат
9 !!
945
Автор задачи: Олег Кац
Источник задачи: Третье командное соревнование школьников Свердловское области по программированию, 4 марта 2001