Pagini recente » Monitorul de evaluare | Cod sursa (job #867852) | Cod sursa (job #3150314) | Cod sursa (job #2016205) | Cod sursa (job #1017776)
#include <cstdio>
#include <vector>
using namespace std;
const int N = 100000, M = N * 5;
struct listNode
{
int vertex;
listNode * nestListNode;
};
struct listen
{
listNode * firstNode;
listNode * lastNode;
};
vector <int> vecini [N + 1];
int n, m, sol;
bool cE = true;
void init ()
{
int a, b, i;
freopen ("ciclueuler.in", "r", stdin);
freopen ("ciclueuler.out", "w", stdout);
scanf ("%d %d", &n, &m);
for (i = 0; i < m; i ++)
{
scanf ("%d %d", &a, &b);
vecini [a].push_back (b);
vecini [b].push_back (a);S
}
}
list DFS (int vertex)
{
list answer;
int nextVertex = vecini [vertex][vecini[vertex].size () - 1];
vecini [vertex]. pop_back
}
void solve ()
{
int i;
for (i = 1; i <= n; i ++)
if (vecini [i].size () % 2 == 1)
cE = false;
if (cE)
DFS (1);
}
void afis ()
{
if (cE)
printf ("%d ", sol);
else
printf ("-1");
}
int main ()
{
init ();
solve ();
afis ();
return 0;
}