Задачи
Беспорядочный экзамен
Беспорядочный экзамен
Первый вопрос на экзамене по \textit{Структурам данных и Алгоритмам} содержал список из \textbf{n }понятий, а также второй список из \textbf{n }определений. Студенту следовало сопоставить каждому понятию его определение. К сожалению Джо, который написал на Visual BASIC программу в университете, и который считал что знает Компьютерные науки, даже не пришел на занятия и не прочитал учебник. Он просто угадывал соответствия. Пусть \textbf{S(n}, \textbf{k)} - количество способов, которыми Джо может ответить на вопрос, сделав как минимум \textbf{k} первых сопоставлений неверными.
Напишите программу, которая вычислит \textbf{S(n}, \textbf{k)}.
\InputFile
Первая строка содержит количество тестов \textbf{p }(\textbf{1 }≤ \textbf{p }≤ \textbf{1000}).
Каждый тест состоит из одной строки и содержит три целых числа. Первое число - номер теста. Второе - количество \textbf{n }(\textbf{1 }≤ \textbf{n }≤ \textbf{17}) понятий, которое будет задействовано в вопросе, Третье число \textbf{k }(\textbf{0 }≤ \textbf{k }≤ \textbf{n}) - количество начальных соответствий, которое будет неверным.
\OutputFile
Для каждого теста вывести в отдельной строке номер теста, пробел, и значение \textbf{S(n}, \textbf{k)}.
Входные данные #1
4 1 4 1 2 7 3 3 10 5 4 17 17
Выходные данные #1
1 18 2 3216 3 2170680 4 130850092279664