Submission #1116458

#TimeUsernameProblemLanguageResultExecution timeMemory
1116458NipphitchPancake (NOI12_pancake)C++14
20 / 25
196 ms16704 KiB
#include <bits/stdc++.h> using namespace std; const int N=1e5+5; const int INF=1e9+7; int n; vector <int> a,b; map <vector <int>,int> dp[10]; int rec(int d,vector <int> v){ if(v==b) return d; if(d==n) return INF; if(dp[d].find(v)!=dp[d].end()) return dp[d][v]; int res=INF; for(int i=0;i<n-1;i++){ reverse(v.begin()+i,v.end()); res=min(res,rec(d+1,v)); reverse(v.begin()+i,v.end()); } return dp[d][v]=res; } void slove(){ a.clear(); b.clear(); cin >> n; for(int i=1;i<=n;i++){ int x; cin >> x; a.push_back(x); b.push_back(x); } sort(b.begin(),b.end(),greater <int>()); cout << rec(0,a) << "\n"; } signed main() { ios::sync_with_stdio(0); cin.tie(0); int tc; cin >> tc; while(tc--) slove(); }
#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...