Cod sursa(job #3298444)

Utilizator Victor5539Tanase Victor Victor5539 Data 30 mai 2025 10:04:18
Problema Ciclu Eulerian Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <set>
#include <vector>

using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");

const int MAX=1e5;
int n,m,i,nod1,nod2,degree[MAX+5],nr;
set <int> s[MAX+5];
bool sol=1,viz[MAX+5];

void dfs(int nod)
{
    viz[nod]=1;
    nr++;

    for (auto x: s[nod])
        if (!viz[x])
            dfs(x);
}

int main()
{
    fin>>n>>m;

    while (m)
    {
        fin>>nod1>>nod2;
        degree[nod1]++;
        degree[nod2]++;

        s[nod1].insert(nod2);
        s[nod2].insert(nod1);
        m--;
    }

    for (i=1; i<=n; i++)
        if (degree[i]%2==1)
            sol=0;

    dfs(1);

    if (nr!=n)
        sol=0;

    if (sol==0)
        fout<<-1;
    return 0;
}