Pagini recente » Cod sursa (job #211512) | Cod sursa (job #2619796) | Cod sursa (job #2753074) | Cod sursa (job #128873) | Cod sursa (job #896314)
Cod sursa(job #896314)
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
vector <long> A[100001],ok;
long N,M,i,j,k;
void dfs (int crt)
{
int i,k=A[crt].size();
for (i=0; i<k; i++)
if (!ok[A[crt][i]])
{
ok[A[crt][i]]=1;
dfs(A[crt][i]);
}
}
bool conex ()
{
dfs(1);
long i=1;
for (i=1; i<=N; i++)
if (!ok[i] && !A[i].size()) return 0;
return 1;
}
bool gradepare()
{
long i;
for (i=1; i<=N; i++)
{
if (A[i].size()%2) return 0;
}
return 1;
}
int main ()
{
FILE *f,*g;
f=fopen("ciclueuler.in", "r");
g=fopen("ciclueuler.out", "w");
fscanf(f, "%d %d", &N,&M);
for (i=1; i<=N; i++) ok.push_back(0);
for (i=1; i<=M; i++)
{
fscanf(f, "%d %d", &j,&k);
A[j].push_back(k);
A[k].push_back(j);
}
if (conex() && gradepare())
{
fprintf(g, "plm");
}
else fprintf(g, "-1\n");
//for (i=1; i<=N; i++, cout<<"\n")
// for (j=0; j<A[i].size(); j++)
// cout<<A[i][j]<<" ";
fclose(f); fclose(g);
return 0;
}