Submission #25991

#TimeUsernameProblemLanguageResultExecution timeMemory
25991H_HSenior Postmen (BOI14_postmen)C++14
55 / 100
943 ms113824 KiB
#include <bits/stdc++.h>
using namespace std;

const int MAXN=500005;
bool vis[MAXN];
bool vs[MAXN];
set<int>adj[MAXN];
int n,m;

int cyc=-1;


void dfs(int x)
{
	vis[x]=true;


	while(!adj[x].empty())
	{
		int y=*adj[x].begin();
		adj[x].erase(adj[x].begin());
		adj[y].erase(adj[y].find(x));
		if(vis[y])
		{
			cout<<x;
			cyc=y;
			break;
		}
		dfs(y);
		if(cyc!=-1)
		{
			cout<<" "<<x;
			if(cyc==x)
			{
				cout<<endl;
				cyc=-1;
			}
			else break;
		}
	}

	vis[x]=false;
}
int main()
{
	cin>>n>>m;
	for(int i=0;i<m;i++)
	{
		int x,y;
		cin>>x>>y;
		adj[x].insert(y);
		adj[y].insert(x);
	}
	
	for(int i=1;i<=n;i++)dfs(i);	
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...