#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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |