Cod sursa(job #2075122)

Utilizator vladavladaa vlada Data 25 noiembrie 2017 11:27:00
Problema Ciclu Eulerian Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
vector<pair<int,int>>v[500001];
int viz[500001];
int n,m,a,b,i,cnt;
void caut(int nod)
{
    fout<<nod<<" ";
    for(int y=0;y<v[nod].size();y++)
    {
        int vecin=v[nod][y].first;
        int muchie=v[nod][y].second;
        if(viz[muchie]==0)
        {
            if(!(vecin==1 && cnt+1<m))
            {
                viz[muchie]=1;
                cnt++;
                caut(vecin);
            }

        }
    }
}
int main()
{
    fin>>n>>m;
    for(i=1;i<=m;i++)
    {
        fin>>a>>b;
        v[a].push_back({b,i});
        v[b].push_back({a,i});
        viz[i]=0;
    }
    cnt=0;
    caut(1);
    return 0;
}