#include <bits/stdc++.h>
using namespace std;
// #pragma GCC optimize("Ofast")
// #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,fma")
// #pragma GCC optimize("unroll-loops")
#define ll long long
#define int128 __int128_t
#define pii pair<int, int>
#define int long long
#define pb push_back
#define F first
#define S second
#define all(v) (v).begin(), (v).end()
#define rall(v) (v).begin(), (v).end()
#define MOD 1000000007
#define INF (ll)1e18
#define RINF (ll) - 1e18
void cinv(vector<int> &a, int n)
{
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
}
void coutv(vector<int> &a, int n)
{
for (int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
}
void solve()
{
int n, a, b;
cin >> n >> a >> b;
vector<int> c;
for (int i = 1; i <= n; i++)
{
if (i != a && i != b)
c.push_back(i);
}
int q = 0;
do
{
bool g = true;
for (int i = 0; i < c.size(); i++)
{
if(i==0){
if((c[i]>a && c[i]>c[i+1]) || (c[i]<a && c[i]<c[i+1])){
continue;
}
else{
g = false;
}
}
else if(i==c.size()-1){
if((c[i]>b && c[i]>c[i-1]) || (c[i]<b && c[i]<c[i- 1])){
continue;
}
else{
g = false;
}
}
else{
if((c[i]>c[i-1] && c[i]>c[i+1]) || (c[i]<c[i-1] && c[i]<c[i+1])){
continue;
}
else{
g = false;
}
}
}
if(g)
q++;
} while (next_permutation(c.begin(), c.end()));
cout << q << endl;
}
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t = 1;
// cin >> t;
while (t--)
{
solve();
}
}
// 5 2 3
// 2
// 1 - 2. 4 - 1. 5 - 2
// 1 - 2 4 - 0 5 - 2
// 1 - 2 4 - 1 5 - 2
// 3
// 32
| # | 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... |