Cod sursa(job #284151)

Utilizator ScrazyRobert Szasz Scrazy Data 21 martie 2009 08:37:57
Problema Ciclu Eulerian Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <cstdio>
#include <vector>
using namespace std;

const int maxn = 100001;

int n;
vector<bool> erased;
vector<pair<int, int> > G[maxn];

void read()
{ 
    int m;
    scanf("%d%d", &n, &m);
    erased.resize(m + 1);

    for (int i = 0; i < m; ++i)
    {
	int x, y; scanf("%d%d", &x, &y); 
	G[x].push_back(make_pair(y, i)); 
	G[y].push_back(make_pair(x, i));
    }
}

void ciclu(int x)
{
    for (int i = 0; i < G[x].size(); ++i)
    {
	int num = G[x][i].second;
	if (erased[num]) continue;
	int next = G[x][i].first;
	erased[num] = true;

	ciclu(next);
	printf("%d ", next);
    }
}

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

    read();
    ciclu(1);

    return 0;
}