Submission #1293895

#TimeUsernameProblemLanguageResultExecution timeMemory
1293895ayxanesedzade10Kangaroo (CEOI16_kangaroo)C++20
6 / 100
2093 ms572 KiB
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define all(x) x.begin(),x.end()
#define ld long double
using namespace std;
const ll sz=1e5+100;
int main()
{
    ll n,cs,cf;cin>>n>>cs>>cf;
    ll a[n+1];
    for(int i=1;i<=n;i++) a[i]=i;
    ll tot=0;
    do{
        ll ok=0;
        if(a[cs]!=1 or a[cf]!=n) ok=1;
        ll cnt[n+5];
        for(int i=1;i<=n;i++){
            cnt[a[i]]=i;
        }
        ll dir=0;
        if(cnt[2]>cnt[1]) dir=1;
        for(int i=2;i<=n;i++){
            if(cnt[i]>cnt[i-1] and dir==0) ok=1;
            if(cnt[i]<cnt[i-1] and dir==1) ok=1;
            dir=1-dir;
        }
        if(!ok) tot++;
    }while(next_permutation(a+1,a+n+1));
    cout<<tot<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...