Cod sursa(job #304893)

Utilizator toni2007Pripoae Teodor Anton toni2007 Data 15 aprilie 2009 16:34:13
Problema Ciclu Eulerian Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <cstdio>
#include <vector>

using namespace std;

#define maxN 	100100
#define maxM 	500100

int tata[maxN], viz[maxN], luat[maxM];
vector <int> G[maxN], C[maxN];

int N, M,Nr;

void df (int x) {
        for (int i = 0; i < C[x].size(); ++ i) {
         	if (!luat[C[x][i]]) {
			luat[C[x][i]] = 1;
			df (G[x][i]);
		}
	}
	printf("%d ", x);
}
int main () {
	int i, j, a, b;

	freopen("ciclueuler.in", "r", stdin);
	freopen("ciclueuler.out", "w", stdout);

	scanf("%d%d", &N, &M);
	
	for (i = 1; i <= M; ++ i) {
		scanf("%d%d", &a, &b);
		G[a].push_back(b);
		G[b].push_back(a);
		++ Nr;
		C[a].push_back(Nr);
		C[b].push_back(Nr);
	}
 
	df (1);	
}