#include <bits/stdc++.h>
#define append push_back
#define int long long
using namespace std;
const int N=2e3+10;
int dp[N][N];
void solve(){
int n,s,e;
cin>>n>>s>>e;
int s_=0,e_=0;
dp[1][1]=1;
for(int i=1;i<=n;i++){
s_|=i==s;
e_|=i==e;
for(int j=1;j<=i;j++){
if(i+1==s or i+1==e){
dp[i+1][j+1]+=dp[i][j];
dp[i+1][j]+=dp[i][j];
}
else{
dp[i+1][j+1]+=dp[i][j]*(j+1-s_-e_);
dp[i+1][j]+=dp[i][j]*(2*j-s_-e_);
dp[i+1][j-1]+=dp[i][j]*(j-1);
}
}
}
cout<<dp[n][1]<<endl;
}
signed main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int T = 1;
// cin >> T;
while (T--)
solve();
}
# | 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... |