Submission #227421

#TimeUsernameProblemLanguageResultExecution timeMemory
227421MKopchevAsceticism (JOI18_asceticism)C++14
100 / 100
30 ms1152 KiB
#include<bits/stdc++.h> using namespace std; const int nmax=1e5+42,mod=1e9+7; int n,m; int fact[nmax],inv[nmax]; int C(int a,int b) { return 1LL*fact[a]*inv[b]%mod*inv[a-b]%mod; } int my_pow(long long a,int b) { //cout<<"my_pow "<<a<<" "<<b<<" -> "; long long ret=1; while(b) { if(b%2)ret=ret*a%mod; b=b/2; a=a*a%mod; } //cout<<ret<<endl; return ret; } int main() { scanf("%i%i",&n,&m); m--; fact[0]=1; for(int i=1;i<=n+1;i++)fact[i]=1LL*fact[i-1]*i%mod; for(int i=0;i<=n+1;i++) inv[i]=my_pow(fact[i],mod-2); int outp=0; for(int k=0;k<=m;k++) { long long add=1; if(k%2)add=mod-1; add=add*C(n+1,k)%mod; add=add*my_pow(m+1-k,n)%mod; //cout<<k<<" -> "<<add<<endl; outp=(outp+add)%mod; } printf("%i\n",outp); return 0; }

Compilation message (stderr)

asceticism.cpp: In function 'int main()':
asceticism.cpp:31:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%i%i",&n,&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...