Cod sursa(job #308461)

Utilizator slayer4uVictor Popescu slayer4u Data 27 aprilie 2009 10:50:04
Problema Ciclu Eulerian Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <stdio.h>
#include <vector>
using namespace std;

vector <int> x[100001];

long n, m, a, b;

void frectie(long nod)
{
	for (long i = 1; i <= x[nod].size(); ++i)
		if (x[nod][i])
		{
			x[nod].erase(x[nod] + i);
			j = 1;
			while (x[i][j] != nod && j != n + 2) ++j;
			x[i].erase(x[i] + j);
			frectie(i);
		}
	printf("%ld ", nod);
}

int main()
{
	freopen ("ciclueulerian.in", "rt", stdin);
	freopen ("ciclueulerian.out", "wt", stdout);

	scanf("%ld %ld", &n, &m);

	for (long i = 1; i <= m; ++i)
	{
		scanf("%ld %ld", &a, &b);
//		x[a][b] = 1;
		x[a].push_back(b);
		x[b].push_back(a);
	}

	frectie(1);
/*	a = 1;
	while (x[1][0])
	{
		for (long i = 1; i <= n && x[a][0]; ++i)
		{
			if (x[a][i])
			{
				x[a][i] = 0;
				--x[a][0];

			}
		}
	}*/

	return 0;
}