Cod sursa(job #768743)

Utilizator lucian666Vasilut Lucian lucian666 Data 17 iulie 2012 17:28:07
Problema Ciclu Eulerian Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb


#include<fstream>
#include<vector>

#define NN 100001
#define pb push_back

using namespace std;
ofstream out("ciclueuler.out");

vector<int>G[NN];
typedef vector<int> :: iterator IT;

int uz[NN],n,m,gr[NN];

void read();
void DFS(int );

int main()
{
	read();
	for(int i=1;i<=n;i++)
	if(gr[i] %2==1)
	{
		out<<-1;
		return 0;
	}
	DFS(1);
	return 0;
}

void read()
{
	ifstream in("ciclueuler.in");
	in>>n>>m;
	for(int x,y; m ;--m)
	{
		in>>x>>y;
		G[x].pb(y);
		G[y].pb(x);
		gr[x]++;
		gr[y]++;
	}
}

void DFS(int start)
{
	for(IT I=G[start].begin();I!=G[start].end();++I)
	{	if(uz[*I])
			continue;
		uz[*I]=1;
		DFS(*I);
		out<<start<<" ";
	}
}