Cod sursa(job #1645096)

Utilizator ArkinyStoica Alex Arkiny Data 10 martie 2016 11:02:46
Problema Mesaj4 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream>
#include<bitset>
#include<algorithm>
#include<vector>
using namespace std;

ifstream in("mesaj4.in");
ofstream out("mesaj4.out");
bitset<100010> v;
vector<int> L[100010];
int N, M,nr;
pair<int, int> v1[100010], v2[100010];
void DFS(int x)
{
	v[x] = 1;
	for (int i = 0;i < L[x].size();++i)
		if (v[L[x][i]] == 0)
		{
			++nr;
			v1[nr] = make_pair(x, L[x][i]);
			v2[nr] = make_pair(L[x][i], x);
			DFS(L[x][i]);
		}
}

int main()
{
	in >> N >> M;
	for (int i = 1;i <= M;++i)
	{
		int x, y;
		in >> x >> y;
		L[x].push_back(y);
		L[y].push_back(x);
	}
	DFS(1);
	if (nr != N - 1)
	{
		out << -1;
		return 0;
	}
	out << nr*2 << '\n';
	for (int i = 1;i <= nr;++i)
		out << v1[i].first << " " << v1[i].second<<'\n';

	for (int i = 1;i <= nr;++i)
		out << v2[i].first << " " << v2[i].second<<'\n';
}