Submission #1362715

#TimeUsernameProblemLanguageResultExecution timeMemory
1362715FZ_LaabidiCarnival (EGOI23_carnival)C++20
11 / 100
48 ms6968 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++){
        int k = 0;
        if(posi[perm[i-1]][i]<=i/2){
            perm.push_back(i);
            continue;
        }
        if(posi[perm[0]][i]<=i/2){
            int next = perm[0];
            perm[0]= i;
            for(int j = 1; j<i-1; j++){
                next  = perm[j+1];
                perm[j+1]= perm[j];
            }
            perm.push_back(next);
            continue;
        }
        for(int j = 1; j < i-1; j++){
            if(posi[perm[j]][i]<=i/2&&posi[perm[j+1]][i]<=i/2)k = j+1;
        }
        int next = perm[k];
        perm[k]= i;
        for(int j = k; j<i-1; j++){
            next  = perm[j+1];
            perm[j+1]= perm[j];
        }
        perm.push_back(next);
    }
    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...