Submission #893596

#TimeUsernameProblemLanguageResultExecution timeMemory
893596vjudge1Kangaroo (CEOI16_kangaroo)C++11
6 / 100
2065 ms348 KiB
#include <bits/stdc++.h> #define pb push_back #define pf push_front using namespace std; #define F first #define S second typedef long long ll; #define pii pair <int, int> #define pll pair <ll, ll> typedef long double ld; const ll N = 2000 + 10; const ll mod = 1e9 + 7; ll um(ll a, ll b){ return ((1LL * a * b) % mod + mod) % mod; } ll subr(ll a, ll b){ return ((1LL * a - b) % mod + mod) % mod; } ll binpow(ll x, ll step){ ll res = 1LL; while(step){ if(step & 1) res = um(res, x); x = um(x, x); step /= 2; } return res; } bool was[N]; ll cnt, n, ans, f; void calc(ll index, ll dir){ //cout << index << " "<< dir << endl; if(cnt == n){ if(index == f) ans++; return; } if(dir <= 0){ for(ll i = index + 1; i <= n; i++){ if(was[i]) continue; was[i] = true; cnt++; calc(i, 1); cnt--; was[i] = false; } } if(dir >= 0){ for(ll i = index - 1; i >= 1; i--){ if(was[i]) continue; was[i] = true; cnt++; calc(i, -1); cnt--; was[i] = false; } } } int main() { // freopen("kangaroo.txt", "r", stdin); // freopen("kangaroo.txt", "w", stdout); ios::sync_with_stdio(false); cin.tie(NULL); ll s; cin >> n >> s >> f; was[s] = true; cnt = 1; calc(s, 0); cout << ans % mod; 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...