Cod sursa(job #717261)

Utilizator lucian666Vasilut Lucian lucian666 Data 19 martie 2012 19:36:35
Problema Mesaj4 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<fstream>
#include<vector>
#include<utility>
#define NN 100001
#define pb push_back
#define mp make_pair 
#define ff first
#define ss second
using namespace std;
ofstream out("mesaj4.out");
int n,m,v[NN];
vector<int>G[NN];
vector<pair<int,int> >rez;
void dfs(int ),citire();
int main()
{
	citire();
	dfs(1);
	int pp=1;
	for(int i=1;i<=n;i++)
		if(!v[i])
			pp=0;
		if(pp)
		{
			out<<2*n-2<<'\n';
			for(int i=rez.size()-1;i>=0;--i)
				out<<rez[i].ss<<" "<<rez[i].ff<<'\n';
		for(int i=0;i<rez.size();++i)
			out<<rez[i].ff<<" "<<rez[i].ss<<'\n';
		}
		else
			out<<-1;
		return 0;
}
void citire()
{
	ifstream in("mesaj4.in");
	in>>n>>m;
	for(int x,y;m;--m)
	{
		in>>x>>y;
		G[x].pb(y);
		G[y].pb(x);
	}
}
void dfs(int start)
{
	v[start]=1;
		for(vector<int>::iterator i=G[start].begin();i<G[start].end();++i)
			if(!v[*i])
			{
				rez.pb(mp(start,*i));
				dfs(*i);
			}
}