Submission #1294285

#TimeUsernameProblemLanguageResultExecution timeMemory
1294285salehhasanliKangaroo (CEOI16_kangaroo)C++20
6 / 100
2096 ms572 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...