#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int M = 1e9 + 7;
int fast(int x, int n) {
if (not n) return 1;
ll ret = fast(x, n >> 1);
ret = (ret * ret) % M;
if (n & 1) ret = (ret * x) % M;
return ret;
}
int main() {
int N, K;
cin >> N >> K;
int F[N + 2]{1};
for (int i = 1; i <= N + 1; ++i) F[i] = (ll) F[i - 1] * i % M;
ll ans = 0;
for (int i = 0; i <= K; ++i) ans += (ll) fast(F[i], M - 2) * fast(F[N + 1 - i], M - 2) % M * (i & 1 ? -1 : 1) * fast(K - i, N) % M;
cout << ans % M * F[N + 1] % M;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |