Submission #1075002

#TimeUsernameProblemLanguageResultExecution timeMemory
1075002XJP12어르신 집배원 (BOI14_postmen)C++17
38 / 100
1069 ms17096 KiB
#include <bits/stdc++.h>
using namespace std;
typedef vector<int> vi;
typedef pair<int,int> ii;
typedef vector<ii> vii;
typedef vector<vii> vvi;
typedef long long ll;
vi mp;
vvi g;
vi path;
vi vis;
void dfs(int u){
	path.push_back(u);
	//cout<<u<<" "<<vis[u]<<endl;
	if(vis[u]==true){
	//	cout<<"hola"<<endl;
		int x = u;
//		cout<<"a"<<endl;
		int size=(int)path.size()-1;
//		cout<<size<<endl;
		do{
			//cout<<size<<endl;
			cout<<path[size]<<" ";
			vis[path[size]]=false;
			path.pop_back();
			size--;
			//cout<<size<<endl;
		}while(path[size]!=x && size>0);
		cout<<'\n';
	}
	vis[u]=true;
	for(auto v: g[u]){
		vis[u]=true;
		int a=u, b=v.first;
		if(a>b) swap(a,b);
		if(mp[v.second]!=1){
		//	cout<<a<<" "<<b<<endl;
			mp[v.second]=1;
			dfs(v.first);
		}
	}

}
int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	int n,m;
	cin>>n>>m;
	g.resize(n+1,vii());
	vis.resize(n+1,0);
	mp.resize(m+1,0);
	for(int i=0; i<m; i++){
		int a,b;
		cin>>a>>b;
		if(a>b) swap(a,b);
		mp[i] = 0;
		g[a].push_back({b,i});
		g[b].push_back({a,i});
	}
	dfs(1);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...