제출 #1235648

#제출 시각아이디문제언어결과실행 시간메모리
1235648MuhammadSaram수천개의 섬 (IOI22_islands)C++20
0 / 100
18 ms4164 KiB
#include "islands.h"
#include <bits/stdc++.h>

using namespace std;

variant<bool, vector<int>> find_journey(int n, int m, vector<int> U, vector<int> V)
{
	int u=0;
	vector<pair<int,int>> nei[n];
	vector<int> v;
	bool vis[n]={};
	for (int i=0;i<m;i+=2)
		nei[U[i]].push_back({V[i],i});
	while (1)
	{
		int f=-1,s=-1,id,id1;
		vis[u]=1;
		for (auto [i,x]:nei[u])
			if (!vis[i])
			{
				if (f==-1) f=i,id=x;
				else s=i,id1=x;
			}
		if (f==-1)
			return false;
		if (~s)
		{
			vector<int> v1=v;
			v.push_back(id), v.push_back(id+1);
			v.push_back(id1), v.push_back(id1+1);
			v.push_back(id+1), v.push_back(id);
			v.push_back(id1+1), v.push_back(id1);
			while (!v1.empty())
				v.push_back(v1.back()), v1.pop_back();
			return v;
		}
		else
			v.push_back(id),u=f;
	}
}
#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...