Cod sursa(job #1367080)

Utilizator traian.vidrascutraian vidrascu traian.vidrascu Data 1 martie 2015 16:30:39
Problema Ciclu Eulerian Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");

struct muc
{
    int p;
    int k;
};
muc aux;
vector <muc> gr[100005];
int n,m,viz[500005],d[500005],l;
void dfs(int x)
{
    int i;
        if(l==m)
        for(i=1;i<=m;i++)
            g<<d[i]<<" ";
    else
    for(i=0;i<gr[x].size();i++)
    {
        if(viz[gr[x][i].k]==0)
            {
                viz[gr[x][i].k]=1;
                l++;
                d[l]=gr[x][i].p;
                dfs(gr[x][i].p);
                d[l]=0;
                l--;
            }
    }

}
int main()
{
    int i,j,x,y;
    f>>n>>m;
    for(i=1;i<=m;i++)
        {
            f>>x>>y;
            aux.p=y;
            aux.k=i;
            gr[x].push_back(aux);
            aux.p=x;
            gr[y].push_back(aux);
        }
    d[1]=1;
    l=1;
    dfs(1);
    int ok=1;
    for(i=1;i<=m;i++)
        if(viz[i]==0)
            ok=-1;
    if(ok==-1)
        g<<ok;

    return 0;
}