#include <bits/stdc++.h>
using namespace std;
#define int long long
const int M = 2000 + 2, mod = 1e9 + 7;
int dp[M][M][3];
signed main()
{
int n,s,e;
cin>>n>>s>>e;
dp[1][1][(s==1 or e==1)]=1;
for (int i=2;i<=n;i++)
for (int j=1;j<=i;j++)
{
if (i==s or i==e)
for (int k=1;k<=2;k++)
dp[i][j][k]=(dp[i-1][j-1][k-1]+dp[i-1][j][k-1])%mod;
else
for (int k=0;k<=2;k++)
dp[i][j][k]=(dp[i-1][j-1][k]*(j-k)*(j>=k)+dp[i-1][j+1][k]*j)%mod;
}
cout<<dp[n][1][2]<<endl;
return 0;
}
# | 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... |