Cod sursa(job #2425263)

Utilizator miruna1224Floroiu Miruna miruna1224 Data 24 mai 2019 17:41:26
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

const int N = 50001;

vector <int> G[N];
vector <bool> vs(N, 0);
queue <int> q;

void dfs ( int x ){
  q.push( x );
  vs[x] = 1;
  for ( auto i : G[x] )
    if ( vs[i] == 0 )
      dfs( i );
}

int main (){

  int i, x, y, n, m;

  //ifstream in("date.in");
  ifstream in ("sortaret.in");
  in >> n >> m;
  for ( i = 0; i < m; i++ ){
    in >> x >> y;
    G[x].push_back(y);
  }
  in.close();

  for ( i = 1; i <= n; i++ )
    if ( vs[i] == 0 )
      dfs ( i );

  //ofstream out("date.out");
  ofstream out ("sortaret.out");
  while ( !q.empty() ){
    out << q.front() << " ";
    q.pop();
  }
  out.close();

  return 0;
}