Олимпиадный тренинг

Задача . E. Расстановка ладей


Посчитайте количество способов расставить \(n\) ладей на доске \(n \times n\) так, что выполняются оба следующих условия:

  • все пустые клетки атакованы;
  • ровно \(k\) пар ладей атакуют друг друга.

Пустая клетка считается атакованной, если хотя бы одна ладья находится в той же строке или в том же столбце. Две ладьи атакуют друг друга, если они находятся в одной и той же строке или в одном и том же столбце, и между ними нет других ладей. Например, на следующей картинке можно найти только две пары ладей, атакующих друг друга:

Один из способов расставить ладьи при \(n = 3\) и \(k = 2\)

Два способа считаются различными, если существует хотя бы одна клетка, которая свободна в одном из способов и занята ладьей в другом способе.

Ответ может быть очень большим, поэтому выведите его по модулю \(998244353\).

Входные данные

Единственная строка входных данных содержит два целых числа \(n\) и \(k\) (\(1 \le n \le 200000\); \(0 \le k \le \frac{n(n - 1)}{2}\)).

Выходные данные

Выведите одно число — количество способов расставить ладьи, взятое по модулю \(998244353\).


Примеры
Входные данныеВыходные данные
1 3 2
6
2 3 3
0
3 4 0
24
4 1337 42
807905441

time 2000 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя