Cod sursa(job #2310490)

Utilizator mihai50000Mihai-Cristian Popescu mihai50000 Data 31 decembrie 2018 19:03:42
Problema Mesaj4 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>
using namespace std;

ifstream in("mesaj4.in");
ofstream out("mesaj4.out");

const int DIM = 1e5 + 7;

vector <int> v[DIM];
bitset <DIM> vis;

vector <pair <int, int> > edge;

void dfs(int nod)
{
	vis[nod] = 1;
	
	for(int i : v[nod])
		if(vis[i] == 0)
		{
			dfs(i);
			edge.push_back({i, nod});
		}
}

int main()
{
	int n, m;
	in >> n >> m;
	
	while(m--)
	{
		int x, y;
		in >> x >> y;
		
		v[x].push_back(y);
		v[y].push_back(x);
	}
	
	dfs(1);
	
	if(edge.size() != n - 1)
	{
		out << "-1\n";
		return 0;
	}
	
	out << 2 * (n - 1) << '\n';
	
	for(auto i : edge)
		out << i.first << ' ' << i.second << '\n';
	
	reverse(edge.begin(), edge.end());
	
	for(auto i : edge)
		out << i.second << ' ' << i.first << '\n';
}