Cod sursa(job #1435454)

Utilizator zpaePopescu Andreea zpae Data 13 mai 2015 11:25:03
Problema Ciclu Eulerian Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <cstdio>
#include <vector>
#include <deque>
using namespace std;
int n,m,u[100007],ok,s[100007];
short a[100007][100007];

void dff(int k, int r, int j)
{
    if(!ok)
    {
        int i;
        for(i=1;i<=n;i++)
        {
            if(a[k][i])
            {
                s[j]=i;
                a[k][i]--;
                a[i][k]--;
                dff(i,r,j+1);
                a[k][i]++;
                a[i][k]++;
                if(i==r)
                {
                    ok=1;
                    for(int c=0;c<j;c++)
                        printf("%d ",s[c]);
                }
            }
        }
    }
}



int main()
{
    freopen("ciclueuler.in","r",stdin);
    freopen("ciclueuler.out","w",stdout);
    int i,x,y;
    scanf("%d %d",&n,&m);
    for(i=1;i<m;i++)
    {
        scanf("%d%d",&x,&y);
        a[x][y]++;
        a[y][x]++;
    }
    for(i=1;i<=n&&!ok;i++)
    {
        s[0]=i;
        dff(i,i,1);
    }
    return 0;
}