Cod sursa(job #2506739)

Utilizator euyoTukanul euyo Data 8 decembrie 2019 18:09:05
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <stdio.h>
#include <vector>
#define MAXN 50000

using namespace std;

vector<int> G[MAXN + 1];
char viz[MAXN + 1];

void sort_top( int node, FILE *fout ) {
  int i;

  viz[node] = 1;
  for ( i = 0; i < G[node].size(); ++i ) {
    if ( viz[G[node][i]] != 1 ) {
      sort_top( G[node][i], fout );
    }
  }
  fprintf( fout, "%d ", node );
}

int main() {
  FILE *fin = fopen( "sortaret.in", "r" );
  FILE *fout = fopen( "sortaret.out", "w" );
  int n, m, i, x, y;

  fscanf( fin, "%d%d", &n, &m );
  for ( i = 0; i < m; ++i ) {
    fscanf( fin, "%d%d", &x, &y );
    G[y].push_back( x );
  }
  for ( i = 1; i <= n; ++i ) {
    sort_top( i, fout );
  }
  fclose( fin );
  fclose( fout );
  return 0;
}