Submission #1293909

#TimeUsernameProblemLanguageResultExecution timeMemory
1293909ayxanesedzade10Kangaroo (CEOI16_kangaroo)C++20
0 / 100
1 ms568 KiB
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define all(x) x.begin(),x.end()
#define ld long double
using namespace std;
const ll sz=1e5+100;
const ll mod=1e9+7;
int main()
{
    ll n,cs,cf;cin>>n>>cs>>cf;
    ll dp[n+5][n+5][2];
    for(int i=0;i<n+5;i++){
        for(int j=0;j<n+5;j++){
            dp[i][j][0]=dp[i][j][1]=0;
        }
    }
    dp[0][cs][0]=1;dp[0][cs][1]=1;
    for(int i=1;i<n;i++){
        for(int j=1;j<=n;j++){
            if(j==cs) continue;
            if(i!=n-1 and j==cf) continue;
            dp[i][j][0]=0;dp[i][j][1]=0;
            for(int k=1;k<j;k++){
                dp[i][j][1]+=dp[i-1][k][0];dp[i][j][1]%=mod;
            }
            for(int k=j+1;k<=n;k++){
                dp[i][j][0]+=dp[i-1][k][1];dp[i][j][0]%=mod;
            }
        }
    }
    cout<<(dp[n-1][cf][0]+dp[n-1][cf][1])%mod<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...