Cod sursa(job #2674114)

Utilizator Iulia14iulia slanina Iulia14 Data 18 noiembrie 2020 16:59:04
Problema Ciclu Eulerian Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream cin ("ciclueuler.in");
ofstream cout ("ciclueuler.out");
struct ura{
    int x, ind;
};
vector <ura> lista[100005];
char muchii[500005];
int sol[500005], cnt;
void euler(int nod)
{
    while (lista[nod].size())
    {
        int x = lista[nod].back().x;
        int ind = lista[nod].back().ind;
        lista[nod].pop_back();
        if (!muchii[ind])
        {
            muchii[ind] = 1;
            euler(x);
        }
    }
    sol[++cnt] = nod;
}
int main()
{
    int n, m, i;
    cin >> n >> m;
    for (i = 1; i <= m; i++)
    {
        int x, y;
        cin >> x >> y;
        lista[x].push_back({y, i});
        lista[y].push_back({x, i});
    }
    euler(1);
    for (i = 1; i < cnt; i++)
        cout << sol[i] << " ";
    return 0;
}