Submission #465487

#TimeUsernameProblemLanguageResultExecution timeMemory
465487BT21tataKangaroo (CEOI16_kangaroo)C++17
6 / 100
2063 ms204 KiB
#include<bits/stdc++.h>
// #pragma GCC target ("avx,avx2,fma")
// #pragma GCC optimize("Ofast")
// #pragma GCC optimize("unroll-loops")
typedef long long ll;
typedef long double ld;
#define SPEED ios_base::sync_with_stdio(false); cin.tie(0), cout.tie(0)
#define rall(v) (v).rbegin(),(v).rend()
#define all(v) (v).begin(),(v).end()
#define OK cerr<<"OK"<<endl<<flush
#define pii pair<int, int>
#define pll pair<ll, ll>
#define pb push_back
#define F first
#define S second
#define y0 jahdakdh
#define y1 jahsadakdakdh
#define endl '\n'
const ll MOD=1e9+7;
using namespace std;
//mt19937 rng(std::chrono::system_clock::now().time_since_epoch().count());
 
int n, st, fin;
ll ans;
bool used[2005];

void f(int cur, int pr, int cnt)
{
    if(cur==fin and cnt==n)
    {
        ans++; ans%=MOD;
        return;
    }
    used[cur]=1;
    for(int nxt=1; nxt<=n; nxt++)
        if(!used[nxt])
        {
            if(pr==-1) f(nxt, cur, cnt+1);
            else if(pr<cur and nxt<cur) f(nxt, cur, cnt+1);
            else if(cur<pr and cur<nxt) f(nxt, cur, cnt+1);
        }
    used[cur]=0;
}

int main()
{
    SPEED;
    cin>>n>>st>>fin;
    f(st, -1, 1);
    cout<<ans;
    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...