Submission #1294095

#TimeUsernameProblemLanguageResultExecution timeMemory
1294095dragonrobotKangaroo (CEOI16_kangaroo)C++17
0 / 100
1 ms568 KiB
#include<iostream> #include<vector> #define ll long long using namespace std; const ll MOD=1000000007; ll power(ll k, ll x) { ll res=1; k%=MOD; while(x>0) { if(x%2==1) res=(res*k)%MOD; k=(k*k)%MOD; x/=2; } return res; } ll modi(ll n){ return power(n,MOD-2); } ll stol(ll n,ll r,const vector<ll>&y,const vector<ll>&z) { if(r<0 || r>n) return 0; return(((y[n]*z[r])%MOD)*z[n-r])%MOD; } int main() { int n,s,f; cin>>n>>s>>f; vector<ll>v(n+1); vector<ll>v2(n+1); v[0]=1; v2[0]=1; for(int i=1; i<=n; i++) { v[i]=(v[i-1]*i)%MOD; v2[i]=modi(v[i]); } ll ans=0; if(f<s) ans=stol(n-2,s-2,v,v2); else ans=stol(n-2,n-s-1,v,v2); cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...