Cod sursa(job #2885207)

Utilizator Langa_bLanga Radu Langa_b Data 5 aprilie 2022 18:09:19
Problema Mesaj4 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("mesaj4.in");
ofstream cout("mesaj4.out");
int n, m;
vector<vector<int>> gr;
int vis[100002];
vector<pair<int, int>> ans;
void dfsb(int act) {
	vis[act] = 1;
	for (auto k : gr[act]) {
		if (vis[k]==0) {
			dfsb(k);
			ans.push_back({ k, act });
		}
	}
}
void dfs(int act) {
	vis[act] = 1;
	for (auto k : gr[act]) {
		if (vis[k]==0) {
			ans.push_back({ act, k });
			dfs(k);
		}
	}
}
int main() {
	cin >> n >> m;
	for (int i = 0; i <= n; i++) {
		gr.emplace_back(vector<int>());
	}
	int x, y;
	for (int i = 1; i <= m; i++) {
		cin >> x >> y;
		gr[x].emplace_back(y);
		gr[y].emplace_back(x);
	}
	dfsb(1);
	for (int i = 1; i <= n; i++) {
		if (vis[i] == 0) {
			cout << -1;
			return 0;
		}
		vis[i] = 0;
	}
	dfs(1);
	cout << ans.size() << '\n';
	for (int i = 0; i < ans.size(); i++) {
		cout << ans[i].first << ' ' << ans[i].second << '\n';
	}
}