Cod sursa(job #508420)

Utilizator loginLogin Iustin Anca login Data 8 decembrie 2010 10:48:41
Problema Mesaj4 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
# include <fstream>
# include <iostream>
# include <vector>
# include <algorithm>
# define DIM 100003
# define pb push_back
using namespace std;
int n, m, v[DIM], T, x[2*DIM], y[2*DIM], nv;
vector<int>G[DIM];

void read ()
{
	ifstream fin ("mesaj4.in");
	fin>>n>>m;
	int x, y;
	for(int i=1;i<=m;++i)
	{
		fin>>x>>y;
		G[x].pb(y);
		G[y].pb(x);
	}
}

void DF (int k)
{
	++nv;
	v[k]=1;
	for(vector<int>::iterator I=G[k].begin();I<G[k].end();++I)
		if (!v[*I])
		{
			x[++T]=k;y[T]=*I;
			v[*I]=1;
			DF(*I);
		}
}

int main()
{
	freopen("mesaj4.out", "w", stdout);
	read ();
	DF(n);
	if (nv<n)
		printf("-1");
	else
	{
		printf("%d\n", 2*T);
		for(int i=T;i;--i)
			printf("%d %d\n", y[i], x[i]);
		for(int i=1;i<=T;++i)
			printf("%d %d\n", x[i], y[i]);
	}
	return 0;
}