답안 #93191

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
93191 2019-01-07T05:50:04 Z abood101 팬케이크 정렬 (NOI12_pancake) C++17
12 / 25
6 ms 376 KB
#include <bits/stdc++.h>
using namespace std;

typedef pair<int,int > pp;
typedef long long ll;

int const N=3e5+10,oo=1e9,M=1e6+2;
ll const OO=1e18;
double const eps=1e-6,PI=acos(-1);
int mod=oo+7;

vector<int > v,o;
int n;

int solve(int idx){
    if(idx==n)return 0;
    if(v[idx]==o[idx])return solve(idx+1);
    int mn=oo;
    for(int j=idx+1;j<n;j++)if(v[j]==o[idx]){
        reverse(v.begin()+j,v.end());
        reverse(v.begin()+idx,v.end());
        mn=min(mn,solve(idx+1)+1+(j!=n-1));
        reverse(v.begin()+idx,v.end());        
        reverse(v.begin()+j,v.end());
    }
    return mn;
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    int t;
    cin>>t;
    while(t--){
        cin>>n;
        v.clear();
        v.resize(n);
        for(int i=0;i<n;i++)cin>>v[i];
        o=v;
        sort(o.begin(),o.end());
        int an=solve(0)+1;
        reverse(o.begin(),o.end());
        an=min(an,solve(0));
        cout<<an<<'\n';
    }
    return 0;
}

# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 256 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 376 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 376 KB Output isn't correct