Cod sursa(job #2722305)

Utilizator valentinchipuc123Valentin Chipuc valentinchipuc123 Data 12 martie 2021 18:44:04
Problema Ciclu Eulerian Scor 100
Compilator cpp-64 Status done
Runda no-time-rest-v3 Marime 0.69 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");

int n,m,grd[100005],stiva[1000005],nr;
list<int>vecini[100005];

int main()
{
 f>>n>>m;
 for(int i=1;i<=m;i++)
 {
  int x,y;
  f>>x>>y;
  vecini[x].push_back(y);
  vecini[y].push_back(x);
 }

 for(int i=1;i<=n;i++)
 {
  if( vecini[i].size()%2!=0 ){
    g<<"-1";
    return 0;
  }
 }

 nr=1;
 stiva[1]=1;
 int x,y;
 while(nr>0)
 {
  x=stiva[nr];
  while( !vecini[x].empty() )
  {
   int y=vecini[x].front();
   vecini[x].pop_front();
   vecini[y].erase( find(vecini[y].begin(),vecini[y].end(),x ) );
   x=y;
   stiva[++nr]=x;
  }
  g<<stiva[nr--]<<' ';
 }
}