Submission #19993

#TimeUsernameProblemLanguageResultExecution timeMemory
19993xdoju괄호 (kriii4_R)C++14
100 / 100
604 ms1084 KiB
#include <stdio.h> const int MOD = 1000000007; int mul(int x, int y){ return (long long)x * y % MOD; } int power(int x, int y){ if(y == 0) return 1; int r = power(x, y / 2); r = mul(r, r); if(y % 2 == 1) r = mul(r, x); return r; } int modinv(int x){ return power(x, MOD - 2); } int main(){ int N, K; scanf("%d%d", &N, &K); int ans = 0, v = power(K, N); for(int op = N; op >= 0; op--){ int cl = N - op; if(cl > op) break; ans += v; ans %= MOD; v = mul(v, modinv(K)); v = mul(v, N - cl * 2 - 1); v = mul(v, modinv(cl + 1)); if(cl != 0){ v = mul(v, N - cl + 1); v = mul(v, modinv(N - 2 * cl + 1)); } } printf("%d\n", ans); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...