제출 #1298233

#제출 시각아이디문제언어결과실행 시간메모리
1298233Cebrayil09캥거루 (CEOI16_kangaroo)C++20
6 / 100
2095 ms572 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

const int sz = 2005;
int n, cs, cf, cnt;


bool used[sz];

void dfs(int rm, int u, bool pre) {
    if(u == cf) {
        if(!rm) cnt++;
        return;
    }
    if(!rm) return;

    used[u] = 1;

    if(u == cs) {
        for(int to = 1;to <= n;to++) {
            if(used[to]) continue;
            dfs(rm-1, to, (to > u));
        }
        return;
    }

    if(!pre) {
        for(int to = u+1;to <= n;to++) {
            if(used[to]) continue;

            dfs(rm-1, to, 1);
        }
    }
    else {
        for(int to = 1;to < u;to++) {
            if(used[to]) continue;

            dfs(rm-1, to, 0);
        }
    }

    used[u] = 0;
}

signed main() {
    ios_base::sync_with_stdio(0);
    cout.tie(0);

    cin >> n >> cs >> cf;
    dfs(n-1, cs, 0);

    cout << cnt << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...