Submission #19009

#TimeUsernameProblemLanguageResultExecution timeMemory
19009kriii괄호 (kriii4_R)C++14
100 / 100
38 ms8896 KiB
#include <stdio.h> const long long mod = 1000000007; long long inv[500002],cat[500001]; int main() { int n,k; scanf ("%d %d",&n,&k); inv[1] = 1; for (int i=2;i<=n/2+1;i++) inv[i] = (mod - mod / i) * inv[mod % i] % mod; cat[0] = 1; for (int i=1;i<=n/2;i++) cat[i] = (4 * i - 2) * inv[i+1] % mod * cat[i-1] % mod; long long u = 1; for (int i=1;i<=n/2;i++){ u = u * k % mod; cat[i] = cat[i] * u % mod; } long long ans = 1; for (int i=0;i<n;i++){ ans = ans * (k + 1) % mod; if (i % 2 == 0) ans = (ans + mod - cat[i/2]) % mod; } printf ("%lld\n",ans); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...