Submission #1295759

#TimeUsernameProblemLanguageResultExecution timeMemory
1295759beater2k7Kangaroo (CEOI16_kangaroo)C++20
100 / 100
16 ms23544 KiB
#include<bits/stdc++.h>
#define ll long long
#define pii pair<ll,ll>
using namespace std;
ll dp[2005][2005];
const ll MOD=1e9+7;
int main()
{

    int n,cs,cf;cin>>n>>cs>>cf;
    dp[1][1]=1;
    for (int i=2;i<=n;i++){
        for (int j=1;j<=i;j++){
            if (i==cs || i==cf){
                dp[i][j]=dp[i-1][j-1]+dp[i-1][j];
                dp[i][j]%=MOD;
            }
            else{
                dp[i][j]=(dp[i-1][j+1]*(j%MOD))%MOD+(dp[i-1][j-1]*((j-(i>cs) -(i>cf))%MOD))%MOD;
                dp[i][j]%=MOD;
            }
        }
    } 
    cout<<dp[n][1];
    return 0;   
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...