Cod sursa(job #1834025)

Utilizator musashi1Doros Doru-Lucian musashi1 Data 23 decembrie 2016 18:17:33
Problema Ciclu Eulerian Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb

#include <vector>
#include <list>
#include<queue>
#include<stack>
#include<fstream>
#include <cstring>
#define MAXN 10001
#define MAXM 50001
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");

stack<int> S;

int N, M, C[MAXM], nc=0;
char G[MAXN][MAXM];
void euler(int nod)
{
	int urm;
	for (urm = 1; urm <= N; urm++)
	if (G[nod][urm])
	{
		//S.push(nod);
		G[nod][urm] = 0;
		G[urm][nod] = 0;
		euler(urm);
	}
	//S.pop();
	C[nc++] = nod;
	
}
int main()
{
	int a, b;
	fin >> N >> M;
	for (int i = 1; i <= M; i++)
	{
		fin >> a >> b;
		G[a][b] = 1;
		G[b][a] = 1;
	}

	euler(1);
	if (nc!=0)
	for (int i = 0; i < nc; i++)
	{
		fout << C[i]<<' ';
	}
	else
	{
		fout << '-1';
	}

}