Submission #1300802

#TimeUsernameProblemLanguageResultExecution timeMemory
1300802simona1230Asceticism (JOI18_asceticism)C++20
100 / 100
26 ms1212 KiB
#include <bits/stdc++.h> using namespace std; const long long mod=1e9+7; long long pw(long long x,long long p) { if(p==0)return 1; if(p==1)return x; long long y=pw(x,p/2); y=y*y%mod; if(p%2==0)return y; return y*x%mod; } long long f[200001]; long long comb(long long k,long long n) { long long in=f[n]*pw(f[k]*f[n-k]%mod,mod-2)%mod; return in; } long long n,k; void solve() { f[0]=1; for(long long i=1;i<=n+1;i++) f[i]=f[i-1]*i%mod; long long ans=0; for(long long i=0;i<k;i+=2) { ans+=comb(i,n+1)*pw(k-i,n)%mod; ans%=mod; //cout<<c*comb(i,n+1)*pw(k-i,n)<<endl;; } for(long long i=1;i<k;i+=2) { ans=(ans-comb(i,n+1)*pw(k-i,n)%mod+mod)%mod; ans%=mod; //cout<<c*comb(i,n+1)*pw(k-i,n)<<endl;; } cout<<ans<<endl; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin>>n>>k; solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...