Cod sursa(job #2716141)

Utilizator vlasdumitruVlas Dumitru vlasdumitru Data 4 martie 2021 19:13:52
Problema Ciclu Eulerian Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int afis[500005],nr,n,m;
vector < pair <int,int> > v[100005];
void euler(int k)
{
    int x,i,j;
    for (i=0; i<v[k].size(); i++)
    {
        if (v[k][i].second==0)
        {
            x=v[k][i].first;
            v[k][i].second=1;
            for (j=0; j<v[x].size(); j++)
                if (v[x][j].first==k and v[x][j].second==0)
                {
                    v[x][j].second=1;
                    break;
                }
            euler(x);

        }

    }
    afis[++nr]=k;
}
int main()
{
    int i,j;
    fin>>n>>m;
    while (fin>>i>>j)
    {
        v[i].push_back({j,0});
        v[j].push_back({i,0});
    }
    euler(1);
    ///fout<<nr<<'\n';
    for (i=1; i<=nr; i++)
        fout<<afis[i]<<" ";
    return 0;
}