Cod sursa(job #2215186)

Utilizator stefantagaTaga Stefan stefantaga Data 21 iunie 2018 11:37:30
Problema Ciclu Eulerian Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
#include <vector>
#include <list>
using namespace std;
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
vector <int> v[100001];
vector <int> :: iterator it;
list <int> q;
int i,x,y,n,nr,m,of;
int main()
{

    f>>n>>m;
    for (i=1;i<=n;i++)
    {
        f>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    q.push_back(1);
    while (!q.empty())
    {
        of=q.front();
        x=of;
        if (v[of].size()==0)
        {
            if (nr<=m)
            {
                g<<of<<" ";
                nr++;
            }
            q.pop_front();
        }
        else
        {
            y=v[x].back();
            q.push_front(y);
            v[x].pop_back();
             for (it=v[y].begin();it!=v[y].end();it++)
    {
        if (*it==x)
        {
            v[y].erase(it);
            break;
        }
    }
        }
    }

    return 0;
}