Cod sursa(job #2867556)

Utilizator dianannnDiana Novac dianannn Data 10 martie 2022 13:50:18
Problema Ciclu Eulerian Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <bits/stdc++.h>
using namespace std;

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

int n;

vector<int> G[201], L;
vector<pair<int,int>> M;
vector<bool> elim;

void Euler(int k)
{
    for(auto x:G[k])
    {
        //x = indicele muchiei
        //M[x].first=k
        //M[x].second=cealalta extremitate
        if(!elim[x])
        {
            elim[x]=1;
            int p=M[x].second;
            if(p==k)
                p=M[x].first;
            Euler(p);
        }
    }
    L.push_back(k);
}

int main()
{
    int i,j;
    f>>n;
    while(f>>i>>j)
    {
        M.push_back({i,j});
        elim.push_back(false);
        G[i].push_back(M.size()-1);
        G[j].push_back(M.size()-1);
    }
    Euler(1);
    g<<L.size()<<'\n';
     for(auto k:L)
        g<<k<< " ";
    return 0;
}