Submission #1014281

#TimeUsernameProblemLanguageResultExecution timeMemory
1014281JakobZorzLongest Trip (IOI23_longesttrip)C++17
60 / 100
873 ms1680 KiB
#include"longesttrip.h" #include<iostream> using namespace std; int n; vector<int>nodes[500]; vector<int>longest_trip(int N,int D){ n=N; for(int i=0;i<n;i++) nodes[i].clear(); for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ if(are_connected({i},{j})){ nodes[i].push_back(j); nodes[j].push_back(i); //cout<<"CONN "<<i<<" "<<j<<"\n"; } } } vector<int>res={0}; vector<bool>vis(n); vis[0]=true; while(true){ int node=res.back(); //cout<<"VIS "<<node<<"\n"; for(int ne:nodes[node]) if(!vis[ne]){ res.push_back(ne); break; } vis[res.back()]=true; if(node==res.back()) break; } // all unvisited are strongly connected for(int i=0;i<(int)res.size();i++){ for(int ne:nodes[res[i]]){ if(!vis[ne]){ vector<int>res2; for(int j=0;j<n;j++) if(!vis[j]&&j!=ne) res2.push_back(j); res2.push_back(ne); for(int j=i;j<(int)res.size();j++) res2.push_back(res[j]); for(int j=0;j<i;j++) res2.push_back(res[j]); return res2; } } } vector<int>res2; for(int j=0;j<n;j++) if(!vis[j]) res2.push_back(j); if(res.size()>res2.size()) return res; else return res2; }
#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...