Pagini recente » Cod sursa (job #2436853) | Cod sursa (job #222793) | Istoria paginii runda/concurs_pd | Istoria paginii runda/test_icrisop | Cod sursa (job #1418345)
#include <iostream>
#include <fstream>
#include <list>
struct Nod
{
std::list<int> vecini;
};
Nod nodes[100000];
int ciclu[100000];
int contorCiclu;
int N,M;
void euler( int v )
{
while( !nodes[v].vecini.empty() )
{
int w = nodes[v].vecini.front();
nodes[v].vecini.pop_front();
euler( w );
}
ciclu[contorCiclu++] = v;
}
int main(int argc, char* argv[])
{
std::ifstream input("ciclueuler.in");
std::ofstream output("ciclueuler.out");
input >> N >> M;
for ( int i = 0; i < M; ++i )
{
int first, second;
input >> first >> second;
nodes[first].vecini.push_back( second );
}
euler(1);
for ( int i = contorCiclu-1; i > 0; --i )
{
output << ciclu[i] << " ";
}
input.close();
output.close();
return 0;
}