Cod sursa(job #1017776)

Utilizator mihail.jianuJianu Mihail mihail.jianu Data 28 octombrie 2013 12:22:16
Problema Ciclu Eulerian Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.1 kb
#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;
}