Cod sursa(job #1856899)

Utilizator Matei_IgnutaMatei Ignuta Matei_Ignuta Data 25 ianuarie 2017 16:52:14
Problema Ciclu Eulerian Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <stdio.h>
#include <vector>
using namespace std;
int n, m, x, y;
int to[100100];
int from[100100];
bool marcat[500010];
vector <int> a[100010];
void dfs(int nod)
{
    for(int i=0; i<a[nod].size(); i++)
    {
        if(marcat[a[nod][i]]==false)
        {
            marcat[a[nod][i]]=true;
            if(to[a[nod][i]]==nod)
                dfs(from[a[nod][i]]);
            else
                dfs(to[a[nod][i]]);
        }
    }
    printf("%d ", nod);
}
int main()
{
    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", &x, &y);
        a[x].push_back(i);
        a[y].push_back(i);
        to[i]=y;
        from[i]=x;
    }
    dfs(1);
    return 0;
}