Cod sursa(job #2531674)

Utilizator CarlaDianaCarla Diana CarlaDiana Data 26 ianuarie 2020 16:19:34
Problema Ciclu Eulerian Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("ciclueuler.in");
ofstream fout ("ciclueuler.out");
int n,a,b,ok,v[20000],niv,m;
short ma[210][210];
void euler(int x)
{
    for(int i=1;i<=n&&v[x]!=0;i++)
    {
        if(ma[x][i])
        {
            if(x==i)
            {
                ma[x][i]--;
                v[x]--;
            }
            else
            {
                ma[x][i]--;
                ma[i][x]--;
                v[x]--;
                v[i]--;
            }

            euler(i);
        }
    }
    v[++niv]=x;
}
int main()
{
    fin>>n>>m;
    for(;m;m--)
    {
        fin>>a>>b;
        if(a==b)
        {
            ma[a][b]++;
            v[a]++;
        }
        else
        {
            ma[a][b]++;
            ma[b][a]++;
            v[a]++;
            v[b]++;
        }

    }
    euler(1);
    ///fout<<niv<<'\n';
    for(;niv>1;niv--)
        fout<<v[niv]<<" ";
    return 0;
}