Cod sursa(job #1842265)

Utilizator Sergiu1256Ionita Sergiu1256 Data 6 ianuarie 2017 19:05:23
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("sortaret.in" );
ofstream fout("sortaret.out");
int n,m,x,y;
vector<int> A[50010];
int ordine[50010],viz[50010],nr;
void DFS(int x){
    viz[x] = 1;
    for(vector<int>::iterator it = A[x].begin(); it!=A[x].end(); it++ )
       if ( !viz[*it] ) DFS(*it);
     ordine[++nr] = x;
}
int main(){
    fin >> n >> m;
    for (int i=1; i<=m; i++){
        fin >> x >> y;
        A[x].push_back(y);
    }
    for (int i(1); i<=n; i++)  if(!viz[i]) DFS(i);
    for ( int i=n; i>=1; i-- )   fout<< ordine[i] << ' ';
	return 0;
}