Submission #1362733

#TimeUsernameProblemLanguageResultExecution timeMemory
1362733FZ_LaabidiCarnival (EGOI23_carnival)C++20
100 / 100
52 ms7012 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; 
        }
    }
    vector<int> perm;
    perm.push_back(0);
    for(int i=1; i<n; i++){
        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[i-1];           
            for(int j = i-1; j>-1; j--){
                perm[j+1]= perm[j];
            }  
            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[i-1];           
        for(int j = i-1; j>k-1; j--)perm[j+1]= perm[j]; 
        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...