Submission #1031578

#TimeUsernameProblemLanguageResultExecution timeMemory
1031578aaaaaarrozLongest Trip (IOI23_longesttrip)C++17
60 / 100
232 ms600 KiB
#include"longesttrip.h"
#include<iostream>
using namespace std;
int n;
vector<int>longest_trip(int N,int D){
	n=N;
	vector<int>res={0};
	vector<bool>vis(n);
	vis[0]=true;
	while(true){
		int node=res.back();
		for(int ne=0;ne<n;ne++){
			if(!vis[ne]&&are_connected({node},{ne})){
				res.push_back(ne);
				break;
			}
		}
		vis[res.back()]=true;
		if(node==res.back())
			break;
	}
	vector<int>res2;
	for(int j=0;j<n;j++)
		if(!vis[j])
			res2.push_back(j);
	if(res2.size()){
		for(int i=0;i<(int)res.size();i++){
			if(are_connected(res2,{res[i]})){
				for(int ne=0;ne<n;ne++){
					if(!vis[ne]&&are_connected({ne},{res[i]})){
						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;
					}
				}
			}
		}
	}
	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...