Cod sursa(job #2848667)

Utilizator vladburacBurac Vlad vladburac Data 12 februarie 2022 23:58:14
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
const int NMAX = 5e4;

ifstream fin( "sortaret.in" );
ofstream fout( "sortaret.out" );

int viz[NMAX+1];
vector <int> edges[NMAX+1];
int indegree[NMAX+1];

void dfs( int node ) {
  viz[node] = 1;
  for( auto parent: edges[node] ) {
    if( !viz[parent] )
      dfs( parent );
  }
  fout << node << " ";
}

int main() {
  int n, m, a, b, i;
  fin >> n >> m;
  for( i = 0; i < m; i++ ) {
    fin >> a >> b;
    edges[b].push_back(a);
    indegree[a]++;
  }
  for( i = 1; i <= n; i++ ) {
    if( indegree[i] == 0 )
      dfs( i );
  }
  return 0;
}