Submission #1354384

#TimeUsernameProblemLanguageResultExecution timeMemory
1354384yyc000123Carnival (EGOI23_carnival)C++20
40 / 100
1095 ms3628 KiB
#include<bits/stdc++.h>
using namespace std ;
const int N = 1005 ;
int n , vis[N] ;
vector<int> nei[N] , path ;
bool flag ;

void dfs(int node){
    path.push_back(node) ; vis[node]=1 ;
    if(path.size()==n){
        flag = true ; return ;
    }
    for(int i:nei[node]){
        if(!vis[i]) dfs(i) ;
        if(flag) return ;
    }
    path.pop_back() ; vis[node]=0 ;
}

int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) ;
    cin >> n ;
    for(int i=1 ; i<n ; i++){
        for(int j=0 ; j<i ; j++){
            int p ; cin >> p ;
            if(j<=(i-1)/2) nei[i].push_back(p) , nei[p].push_back(i) ;
        }
    }
    int root = -1 ;
    for(int i=0 ; i<n ; i++){
        sort(nei[i].begin(),nei[i].end()) , nei[i].resize(unique(nei[i].begin(),nei[i].end())-nei[i].begin()) ;
        if(nei[i].size()==1) root=i ;
    }
    if(root!=-1) dfs(root) ;
    for(int i=0 ; i<n && !flag ; i++){
        flag = false ; memset(vis,0,sizeof(vis)) ;
        dfs(i) ;
        if(flag) break ;
    }
    for(int i:path) cout << i << ' ' ;
    cout << '\n' ;
    return 0 ;
}
#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...