Cod sursa(job #1643425)

Utilizator GeraltMirea Radu Geralt Data 9 martie 2016 18:47:46
Problema Ciclu Eulerian Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;


vector <pair <int,int> > v[1000];

int gr[1000],n,m,ver[1000],c[1000],l;

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


void dfs(int i){

int j;

for(j=0;j<v[i].size();j++){
    if(ver[v[i][j].second]) continue;
ver[v[i][j].second]=1;
dfs(v[i][j].first);
c[++l]=i;
}
}


int main()
{
    int x,y,iz=0,i;

    f>>n>>m;

    for(i=1;i<=m;i++){
        f>>x>>y;
        v[x].push_back(make_pair(y,i));
        v[y].push_back(make_pair(x,i));

        gr[x]++;
        gr[y]++;

    }

     for(i=1;i<=n;i++)
        if(gr[i]%2==1) iz++;

        if(iz>0) g<<-1;
        else dfs(1);

for(i=l;i>=1;i--)
    g<<c[i]<<" ";

    f.close();
    g.close();
    return 0;
}