Cod sursa(job #1685954)

Utilizator Evghenii_BeriozchinEvghenii Beriozchin Evghenii_Beriozchin Data 11 aprilie 2016 22:44:02
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int vis[50005], ordine[50005];
vector<int> A[50005];
int nr=0, n, m;
void DFS(int x){
vis[x]=1;
for(int i=0; i<A[x].size(); i++)
if (!vis[A[x][i]]) DFS(A[x][i]);
ordine[++nr]=x;
}
int main()
{
    ifstream fin("sortaret.in");
 ofstream fout("sortaret.out");
  fin>>n>>m;

int a,b;
  for(int i=0; i<n; i++)
    vis[i]=0;
  for(int i=0; i<m; i++){

    fin>>a>>b;
    A[a].push_back(b);
  }
  for(int i=1; i<=n; i++)
    if(vis[i]!=1) DFS(i);

   for(int i=n; i>=1; i--)
    fout<<ordine[i]<<" ";
    return 0;
}