제출 #1327184

#제출 시각아이디문제언어결과실행 시간메모리
1327184HaroldVemeno캥거루 (CEOI16_kangaroo)C++20
51 / 100
764 ms32196 KiB
#include <bits/stdc++.h>

#ifdef GUDEB
    #define D(x) cerr << #x << ": " << (x) << '\n';
    #define ifdeb if(true)
#else
    #define D(x) ;
    #define ifdeb if(false)
#endif

#define all(x) begin(x), end(x)

using namespace std;
using ull = unsigned long long;
using ll = long long;
// #define int ll;

constexpr ll mod = 1000000007;

int dp[202][202][202];

void solve() {
    int n, s, f;
    cin >> n >> s >> f;
    --s; --f;

    dp[s][f][n] = 1;
    dp[n-s-1][n-f-1][n] = 1;
    for(int i = n; i >= 2; --i) {
        for(int s = 0; s < i; ++s) {
            for(int f = 0; f < i; ++f) {
                int d = dp[s][f][i];
                if(s == f) continue;
                for(int k = s+1; k < i; ++k) {
                    int nf = f;
                    int ns = k;
                    if(ns >= s) --ns;
                    if(nf >= s) --nf;
                    dp[i-2-ns][i-2-nf][i-1] += d;
                    dp[i-2-ns][i-2-nf][i-1] %= mod;
                }
            }
        }
    }
    cout << dp[0][0][1] << '\n';


}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout << setprecision(20);

    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...