Submission #1293910

#TimeUsernameProblemLanguageResultExecution timeMemory
1293910oruc캥거루 (CEOI16_kangaroo)C++20
6 / 100
2094 ms572 KiB
/// designed by Oruc Cabbarli #pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; #define int long long #define vi vector<int> #define pii pair<int,int> #define vpii vector<pii> #define fi first #define se second #define pb push_back #define all(v) v.begin(), v.end() #define endl '\n' template<typename T>void show(vector<T> &v){ for(auto &i: v){ cout << i << ' '; } cout << endl; } const int N = 1e5+5; const int INF = 1e18; const int LOG = 20; const int MOD = 1e9+7; int n,cs,cf,sum=0; void dfs(int mask, int cur, int d){ if(mask == (1 << n) - 1){ if(cur == cf) sum = (sum+1)%MOD; return; } for(int i = 1; i <= n; i++){ if(mask & (1 << (i-1))) continue; if(d == 0 && i >= cur) continue; if(d == 1 && i <= cur) continue; dfs(mask | (1 << (i-1)), i, 1-d); } } void solve(){ cin >> n >> cs >> cf; if(cs > 1){ dfs(1 << (cs-1), cs, 0); } if(cs < n){ dfs(1 << (cs-1), cs, 1); } cout << sum << endl; } signed main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int t = 1; //cin >> t; for(int i = 1; i <= t; i++){ //cout << "Case #" << i << ": "; solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...