Cod sursa(job #373131)

Utilizator savimSerban Andrei Stan savim Data 12 decembrie 2009 18:51:58
Problema Ciclu Eulerian Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <stdio.h>
#include <vector>

using namespace std;

#define MAX_N 100010
#define MAX_M 500010

#define pb push_back

vector <int> v[MAX_N], poz[MAX_N];
int n, m, p, q;
int use[MAX_N];
int ind[MAX_M];

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

	scanf("%d %d", &n, &m);
	for (int i = 1; i <= m; i++) {
    	scanf("%d %d", &p, &q);
		v[p].pb(q); v[q].pb(p);
		poz[p].pb(i); poz[q].pb(i);
	}
}

void solve(int nod) {
	int len = v[nod].size();
	for (int i = 0; i < len; i++)
		if (ind[poz[nod][i]] == 0) {
        	ind[poz[nod][i]] = 1;
			solve(v[nod][i]);
		}
	
	if (nod != 1) printf("%d ", nod);
}

int main() {

	cit();

	printf("1 ");
	solve(1);
	printf("\n");

	return 0;
}