Cod sursa(job #3286591)

Utilizator robert_dumitruDumitru Robert Ionut robert_dumitru Data 14 martie 2025 13:43:43
Problema Ciclu Eulerian Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;

//aproapeperm
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");

int n;
int poz[205], X[20005], Y[20005], viz[20005];
vector<int> L[205];
vector<int> sol;

void Euler(int k)
{
    //sol.push_back(k);
    while (poz[k] < L[k].size())
    {
        int i = L[k][poz[k]++];
        if (viz[i] == 0)
        {
            viz[i] = i;
            Euler(X[i] + Y[i] - k);
        }
    }
    sol.push_back(k);
}

int main()
{
    int i, j, k;
    fin >> n;
    k = 0;
    while (fin >> i >> j)
    {
        k++;
        L[i].push_back(k);
        L[j].push_back(k);
        X[k] = i; Y[k] = j;
    }
    //sol.push_back(1);
    Euler(1);
    sol.pop_back();
    fout << sol.size() << "\n";
    for (int i : sol)
        fout << i << " ";
    fout << "\n";
    return 0;
}