Cod sursa(job #2154878)

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

ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int d[10001], n,m, p=0, viz[10001],A[10001],B[10001],sol[10000];
vector<char> L[1000];
priority_queue <char> Q;

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;
}