13008. K-Інверсійні перестановки
Відправити розв'язок
Бали:
100
Time limit:
2.0s
Memory limit:
250M
Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python
Позначимо \(f(P)\) кількість інверсій у деякій перестановці \(P\).
Обчисліть кількість перестановок, які задовольняють такі умови:
- \(P\) є перестановкою чисел {1,2,...n}
- \(f(P)=k\)
Враховуючи \(n\) і \(k\), знайти та та вивести кількість перестановок {1,2,...n} , зо мають \(k\) інверсій.
Оскільки це значення може бути досить великим, ваша відповідь має бути за модулем \(10^9+7\).
Формат вхідних даних
Один рядок із двох цілих чисел, розділених пробілами, що описують відповідні значення \(n\) та \(k\)
Формат вихідних даних
Виведіть єдине ціле число, що позначає кількість перестановок, які мають інверсії, за модулем \(10^9+7\).
Обмеження
- \(1 \le n \le 10^5\)
- \( 0 \le k \le min(C_n^2,10^5)\)
Приклад вхідних даних
3 2
Приклад вихідних даних
2
Пояснення
Оскільки \(n=3\), наша початкова послідовність дорівнює {1,2,3} , і ми повинні знайти кількість перестановок, які мають \(k\) інверсій. Є дві такі перестановки:
- {3,1,2} має дві інверсії {3,1 } та {3,2}
- {2,3,1} має дві інверсії {2,1} та {3,1}.
Коментарі