Беспорядочный экзамен
Первый вопрос на экзамене по Структурам данных и Алгоритмам содержал список из n понятий, а также второй список из n определений. Студенту следовало сопоставить каждому понятию его определение. К сожалению Джо, который написал на Visual BASIC программу в университете, и который считал что знает Компьютерные науки, даже не пришел на занятия и не прочитал учебник. Он просто угадывал соответствия. Пусть S(n, k) - количество способов, которыми Джо может ответить на вопрос, сделав как минимум k первых сопоставлений неверными.
Напишите программу, которая вычислит S(n, k).
Входные данные
Первая строка содержит количество тестов p (1 ≤ p ≤ 1000).
Каждый тест состоит из одной строки и содержит три целых числа. Первое число - номер теста. Второе - количество n (1 ≤ n ≤ 17) понятий, которое будет задействовано в вопросе, Третье число k (0 ≤ k ≤ n) - количество начальных соответствий, которое будет неверным.
Выходные данные
Для каждого теста вывести в отдельной строке номер теста, пробел, и значение S(n, k).