Submission #1306950

#TimeUsernameProblemLanguageResultExecution timeMemory
1306950Double_SlashAsceticism (JOI18_asceticism)C++20
100 / 100
42 ms804 KiB
#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 + M) * F[N + 1] % M; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...