Submission #427122

#TimeUsernameProblemLanguageResultExecution timeMemory
427122HazemAncient Books (IOI17_books)C++14
12 / 100
103 ms416 KiB
#include "books.h" #include <bits/stdc++.h> #define LL long long using namespace std; const LL LINF = 1e18; int a[10],n; vector<int>vec; bool check(){ bool q = 1; for(int i=0;i<n;i++) q &= (a[i]==vec[i]); return q; } LL bt(int pos,int cur,int cnt); LL move(int pos,int cur,int cnt){ LL ret = LINF; if(pos<n-1) ret = min(ret,bt(pos+1,cur,cnt+1)); if(pos>0) ret = min(ret,bt(pos-1,cur,cnt+1)); return ret; } LL bt(int pos,int cur,int cnt){ if(!pos&&check()) return cnt; if(cnt>10) return LINF; LL ret = LINF; ret = min(ret,move(pos,cur,cnt)); swap(cur,a[pos]); if(!pos&&check()) return cnt; ret = min(ret,move(pos,cur,cnt)); swap(cur,a[pos]); return ret; } long long minimum_walk(std::vector<int> P, int s) { vec = P; n = P.size(); for(int i=0;i<n;i++) a[i] = i; LL ans = bt(0,-1,0); return ans; }
#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...