Submission #997458

#TimeUsernameProblemLanguageResultExecution timeMemory
997458AbitoFestivals in JOI Kingdom 2 (JOI23_festival2)C++17
5 / 100
9059 ms468 KiB
#include <bits/stdc++.h>
#define F first
#define S second
#define pb push_back
#define ppb pop_back
#define ep insert
#define endl '\n'
#define elif else if
#define pow pwr
#define sqrt sqrtt
#define int long long
#define ll long long
#define y1 YONE
typedef unsigned long long ull;
using namespace std;
const int N=4e4+5;
int a[N],n,P;
int32_t main(){
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    cin>>n>>P;
    for (int i=1;i<=2*n;i++) a[i]=i;
    int ans=0;
    do{
        bool ok=true;
        for (int i=1;i<=n;i++) ok&=((a[i]<a[i+1] || i==n) && a[i]<a[i+n]);
        if (!ok) continue;
        int ans1=0,r=0;
        for (int i=1;i<=n;i++){
            if (a[i]>r){
                ans1++;
                r=a[i+n];
            }
        }
        int ans2=0;r=0;
        while (true){
            bool f=0;
            int idx=0;
            for (int i=1;i<=n;i++){
                if (a[i]<r) continue;
                if (!idx || a[i+n]<a[idx]){
                    idx=i+n;
                    f=1;
                }
            }
            if (!f) break;
            ans2++;
            r=a[idx];
        }ans+=(ans2>ans1);
        //for (int i=1;i<=n;i++) cout<<a[i]<<' ';cout<<endl;
        //for (int i=n+1;i<=2*n;i++) cout<<a[i]<<' ';cout<<endl;
        //cout<<ans1<<' '<<ans2<<endl;
    }while (next_permutation(a+1,a+1+2*n));
    cout<<ans<<endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...