#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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |