제출 #1069690

#제출 시각아이디문제언어결과실행 시간메모리
1069690Muhammad_Aneeq가장 긴 여행 (IOI23_longesttrip)C++17
40 / 100
993 ms1376 KiB
#include <vector>
#include <set>
#include "longesttrip.h"
#include <bitset>
using namespace std;
int const MAXN=256;
vector<int>nei[MAXN]={};
vector<int>ans;
vector<int>cur;
bitset<MAXN>vis;
void dfs(int u,int p=-1)
{
	vis[u]=1;
	cur.push_back(u);
	bool w=0;
	for (auto i:nei[u])
	{
		if (vis[i])
			continue;
		w=1;
		dfs(i,u);
	}
	if (w==0)
	{
		if (cur.size()>ans.size())
			ans=cur;
	}
	cur.pop_back();
}
vector<int> longest_trip(int N, int D)
{
	ans.clear();
	cur.clear();
	for (int i=0;i<N;i++)
		nei[i].clear();
	vector<int>x(1),y(1);
	for (int i=0;i<N;i++)
		for (int j=i+1;j<N;j++)
		{
			x[0]=i;y[0]=j;
			if (are_connected(x,y))
				nei[i].push_back(j),nei[j].push_back(i);
		}
	for (int i=0;i<N;i++)
	{
		for (int j=0;j<N;j++)
			vis[j]=0;
		dfs(i);
	}
	return ans;
}
#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...