Cod sursa(job #1526886)

Utilizator asavoaeigeoAsavoaei Georgiana asavoaeigeo Data 17 noiembrie 2015 16:21:27
Problema Ciclu Eulerian Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("ciclueuler.in");
ofstream fout ("ciclueuler.out");
const int Nmax=100005 ;
int gr[Nmax];
vector <int> sol;
std::vector<int>::iterator it;
bitset <Nmax> v[Nmax];
int i, n, x, y,m;
void CicluEulerian (int x)
{
    for (int i=1; i<=n; i++)
    {
        if (v[i][x]==1)
        {
            v[i][x]=v[x][i]=0;
            CicluEulerian (i);
        }
    }
    sol.push_back(x);
}

int main()
{
    fin>>n>>m;
    while (fin>>x>>y)
    {
        v[x][y]=v[y][x]=1;
        gr[x]++;gr[y]++;
    }
    
    for(int i=1;i<=n;i++)
     if(gr[i]%2==1) {fout<<-1;return 0;}
    
    CicluEulerian(1);
    for (it=sol.begin(); it!=sol.end(); it++) fout <<*it<< " ";
}