Submission #1262392

#TimeUsernameProblemLanguageResultExecution timeMemory
1262392ZeroCoolSenior Postmen (BOI14_postmen)C++20
0 / 100
1096 ms20828 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;

using namespace std;;
#define ll long long
#define ar array

template<typename T>
using oset = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

#define int long long
#define all(v) v.begin(), v.end()
#define ld long double

const int N = 4e5 + 20;
const int M = 2;
const int LOG = 20;
const ll INF = 1e17;
int MOD = 998244353;

// #pragma GCC target("avx2")
// #pragma GCC optimize("O3")
// //#pragma GCC optimize("unroll-loops")

template<typename T>
inline void chmin(T &x,T y){x = min(x, y);}
template<typename T>
inline void chmax(T &x,T y){x = max(x, y);}
inline void mm(int &x){x = (x % MOD + MOD) % MOD;};

bool vis[N];
set<int> g[N];

vector<int> P;
vector<int> Q;
void dfs(int x,int p,int s){
	P.push_back(x);
	vis[x] = 1;
	//cout<<1 + x<<' ';
	for(auto u: g[x]){
		if(u == p)continue;
		if(u == s){
			Q = P;
			return;
		}
		if(!vis[u])dfs(u, x, s);
	}

	P.pop_back();
}

void orz(){
	int n, m;
	cin>>n>>m;
	for(int i = 0;i < m;i++){
		int a, b;
		cin>>a>>b;
		--a, --b;
		g[a].insert(b);
		g[b].insert(a);
	}
	for(int i = 0;i < n;i++){
		while(g[i].size() > 0){
			P.clear();
			Q.clear();
			dfs(i, i, i);
			for(auto u: Q)cout<<u + 1<<" ";
			cout<<'\n';
			int y = Q.back();
			for(auto x: Q){
				g[y].erase(x);
				g[x].erase(y);
				y = x;
			}
			for(int i = 0;i < n;i++)vis[i] = 0;
		}
	}
}

signed main() { 		
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int t = 1;
	//cin>>t;
	while (t--)orz();
}

//I am stupid :D
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...