Cod sursa(job #528739)

Utilizator klamathixMihai Calancea klamathix Data 3 februarie 2011 12:58:46
Problema Mesaj4 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<fstream>
#include<vector>
const int maxn = 100005;
using namespace std;

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

int n , m , a , b , i;
vector <int> G[maxn];
vector < pair <int ,int > > sol;
bool seen[maxn];

void DFS(int node) {
	int i;
	seen[node] = true;
	for( i = 0 ; i < G[node].size() ; ++i )
		if (!seen[G[node][i]] ) {
			DFS(G[node][i]);
			sol.push_back(make_pair( node , G[node][i]));
		}
}
			

int main()
{
	fin >> n >> m;
	for( i = 1 ; i <= m ; ++i ) 
		fin >> a >> b ,
		G[a].push_back(b),
		G[b].push_back(a);
	
	DFS(1);
	
	for ( i = 1 ; i <= n ; ++i ) 
		if (! seen[i] ) {
			fout <<"-1\n";
			return 0;
		}
		
	fout << 2 * (n - 1) <<"\n";
	
	for( i = 0 ; i < sol.size() ; ++i )
		fout <<sol[i].second <<" " << sol[i].first<<"\n";
	for( i = sol.size() - 1 ; i >= 0 ; --i )
		fout <<sol[i].first <<" "<<sol[i].second <<"\n";
	
		
return 0;
}