Submission #1362728

#TimeUsernameProblemLanguageResultExecution timeMemory
1362728FZ_LaabidiCarnival (EGOI23_carnival)C++20
11 / 100
48 ms6972 KiB
#include <bits/stdc++.h>
using namespace std;
signed main(){
    int n; cin >> n;
    vector<vector<int>> posi(n, vector<int>(n, -1));
    vector<vector<int>> p(n-1);
    for(int i=0; i<n-1; i++){
        for(int j=0; j<i+1; j++){
            int x; cin >> x;
            p[i].push_back(x);
            posi[p[i][j]][i+1]= j; 
        }
    }
   // for(auto it: posi){ 
    //    for(auto vi: it)cout << vi << " ";
 //       cout << endl;
   // }
    vector<int> perm;
    perm.push_back(0);
    for(int i=1; i<n; i++){
       // for(auto it: perm)cout << it << " ";
       // cout << endl;
        int k = 0;
        if(posi[perm.back()][i]<(i+1)/2){
            perm.push_back(i);
            continue;
        }
        if(posi[perm[0]][i]<(i+1)/2){
            int next = perm[0];           
            for(int j = 0; j<i-1; j++){
                next = perm[j+1];
                perm[j+1]= perm[j];
                perm[j] =next;  
            }
            perm.push_back(next);
            perm[0]= i;
            continue;
        }
        for(int j = 1; j < i-1; j++){
            if(posi[perm[j]][i]<(i+1)/2&&posi[perm[j+1]][i]<(i+1)/2)k = j+1;
        }
        int next = perm[k];           
        for(int j = k; j<i-1; j++){
            next = perm[j+1];
            perm[j+1]= perm[j];
            perm[j] =next;    
        }
        perm.push_back(next);
        perm[k]= i;
        }
    for(auto it: perm)cout << it << " ";
    
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...