Cod sursa(job #2716115)

Utilizator vlasdumitruVlas Dumitru vlasdumitru Data 4 martie 2021 18:48:28
Problema Ciclu Eulerian Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int afis[500005],nr,n,m;
struct nod
{
    int info,viz;
    nod *urm;
};
nod *v[100005];
void adaug(int i,int j)
{
    nod *q;
    q=new nod;
    q->info=j;
    q->viz=0;
    q->urm=v[i];
    v[i]=q;
}
void euler(int k)
{
    nod *q,*p;
    q=v[k];
    while (q!=NULL)
    {
        if (q->viz==0)
        {
            p=v[q->info];
            while (p->info!=k or p->viz==1)
            {
                p=p->urm;
            }
            p->viz=q->viz=1;
            euler(q->info);
        }
        q=q->urm;
    }
    /*for (i=1;i<=n;i++)
        if (ma[k][i]==1)
    {
        ma[k][i]=ma[i][k]=0;
        euler(i);
    }*/
    afis[++nr]=k;
}
int main()
{int i,j;
    fin>>n>>m;
    while (fin>>i>>j)
    {
        adaug(i,j);
        adaug(j,i);
    }
    euler(1);
    ///fout<<nr<<'\n';
    for (i=1;i<=nr;i++)
        fout<<afis[i]<<" ";
    return 0;
}