Submission #1235651

#TimeUsernameProblemLanguageResultExecution timeMemory
1235651MuhammadSaramThousands Islands (IOI22_islands)C++20
22.75 / 100
31 ms5188 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++)
		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...