Cod sursa(job #2154881)

Utilizator dragosmihuDragos Mihu dragosmihu Data 7 martie 2018 13:21:16
Problema Ciclu Eulerian Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<bits/stdc++.h>
using namespace std;

ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int n,m, p=0, viz[100001],A[100001],B[100001],sol[100001];
vector<int> L[1000];
void Citire()
{
    int i;
	fin >> n >> m;
	for (i = 1; i <= m; i++)
	{
		fin >> A[i] >> B[i];
		L[A[i]].push_back(i);
		L[B[i]].push_back(i);
}
}


int P[10000];
void DFS(int k)
{
    int i;
	while (P[k] < L[k].size())
	{
		i = L[k][P[k]];
		P[k]++;
        if (viz[i] == 0)
		{
			viz[i] = 1;
			DFS(A[i] + B[i] - k);
        }
    }
    sol[++p] = k;
}

int main()
{
    int i;
	Citire();
	DFS(A[1]);
    for(i=1;i<p;i++)
        fout<<sol[i]<<" ";
    return 0;
}