Pagini recente » Cod sursa (job #2619936) | Cod sursa (job #287331) | Cod sursa (job #1644546) | Cod sursa (job #290652) | Cod sursa (job #3298444)
#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;
}