Submission #1169604

#TimeUsernameProblemLanguageResultExecution timeMemory
1169604vijwalPancake (NOI12_pancake)C++20
12 / 25
9 ms328 KiB
#include <bits/stdc++.h>
using namespace std;

int a[10];
int b[10];

void flip(int i, int n){
    reverse(a+i, a+n);
}

int main(){
    int t;
    cin >> t;
    while(t--){
        int n;
        cin >> n;
        for(int i=0; i<n; i++){cin >> a[i];}
        
        int steps=0;
        while(true){
            copy(a, a+n, b);
            sort(b, b+n, [](int a, int b){return a>b;});
            
            int mis=-1;
            for(int i=0; i<n; i++){
                if(a[i]!=b[i]){
                    mis=i;
                    break;
                }
            }
            if (mis==-1){break;}
            
            int get = b[mis];
            int geta;
            for(int i=mis+1; i<n; i++){
                if (a[i]==get){
                    geta=i;
                    break;
                }
            }
            
            if (geta == n-1){
                flip(mis, n);
                steps++;
            }
            
            else{
                flip(geta, n);
                flip(mis, n);
                steps+=2;
            }
        }
        cout << steps << '\n';
    }
}
#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...