Cod sursa(job #3273965)

Utilizator Codrut_NeagNeag Codrut Serban Codrut_Neag Data 4 februarie 2025 17:33:00
Problema Ciclu Eulerian Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream>

using namespace std;

int n, m, a[101][101], urm[101], v[101], start, sfarsit;

void citire()
{
    int x, y;
    cin>>n;
    m=n*(n-1)/2;
    for(int i=1; i<=m; i++)
    {
        cin>>x>>y;
        a[x][y]=1;
    }
}

void turneu()
{
    urm[1]=0;
    start=1;
    sfarsit=1;
    for(int i=2; i<=n; i++)
    {
        if(a[sfarsit][i]==1)
        {
            urm[sfarsit]=i;
            sfarsit=i;
        }
        else if(a[i][start])
        {
            urm[i]=start;
            start=i;
        }
        else
        {
            int ok=1;
            for(int j=1; j<=i&&ok; j++)
                if(a[j][i]==1&&a[i][urm[j]]==1)
                {
                    urm[i]=urm[j];
                    urm[j]=i;
                    ok=0;
                }
        }
    }
}

void afisare()
{
    while(start)
    {
        cout<<start<<" ";
        start=urm[start];
    }
}

int main()
{
    citire();
    turneu();
    afisare();
    return 0;
}