Cod sursa(job #2943188)

Utilizator andrei_marciucMarciuc Andrei andrei_marciuc Data 20 noiembrie 2022 18:06:06
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <vector>
using namespace std;

ifstream cin( "sortaret.in" );
ofstream cout( "sortaret.out" );

const int MAX = 5e4 + 10;
vector<int> noduri[ MAX ];
vector<int> rez;
bool viz[ MAX ];
int n, m;

void dfs( int u ) {
	viz[ u ] = 1;
	for( int v : noduri[ u ] )
		if( !viz[ v ] )
			dfs( v );
	rez.push_back( u );
}

int main()
{
	int u, v;
	cin >> n >> m;
	for( int i = 0; i < m; i++ ) {
		cin >> u >> v;
		noduri[ u ].push_back( v );
		noduri[ v ].push_back( u );
	}

	for( int i = 1; i <= n; i++ )
		if( !viz[ i ] )
			dfs( i );

	for( int i = rez.size() - 1; i >= 0; i-- )
		cout << rez[ i ] << ' ';
	cout << '\n';
	return 0;
}