Submission #1189933

#TimeUsernameProblemLanguageResultExecution timeMemory
1189933RafiullahKangaroo (CEOI16_kangaroo)C++20
6 / 100
0 ms324 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define MOD 998244353
const int N = 2e3 + 5;
int dp[N][N][3];
void solve(){
	int n, s, f;
    cin >> n >> s >> f;
    dp[1][1][(s == 1) + (f == 1)] = 1;
    for (int i = 1 ; i<n ; i++)  
        for (int j = 1 ; j<= i ; j++)
            if (i+1 == s || i+1 == f) {
                for (int k = 0 ; k < 2 ; k++) {
                    dp[i + 1][j][k + 1] += dp[i][j][k];
                    dp[i + 1][j + 1][k + 1] += dp[i][j][k];
                }
            }
            else {
                for (int k=0;k<3;k++) {
                    dp[i+1][j+1][k] += dp[i][j][k]*(j+1-k);
                    dp[i+1][j-1][k] += dp[i][j][k]*(j-1);
                }
            }
    cout << dp[n][1][2] << '\n';
}
signed main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int t = 1 ;//cin >> t;
    while(t -- )solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...