Cod sursa(job #500558)

Utilizator adalLica Adela adal Data 12 noiembrie 2010 15:20:26
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <vector>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define pb push_back

using namespace std;
vector< int > L[50005], C;
vector <int> :: iterator it;
int n, m, i, x, y ;
bool sel[50005];

void load(){
   scanf("%d %d\n", &n, &m);
   for (i=1; i<= m; i++){
   scanf("%d %d\n",&x, &y);
   L[x].pb(y);
  }
 return;
}
void dfs(int x){
   vector <int> :: iterator it;
   sel[x]=true;
   for(it=L[x].begin(); it!=L[x].end(); it++)
	    if (!sel[*it]) dfs(*it);
   C.pb(x);  
}

int main(){
 freopen("sortaret.in","r",stdin);
 freopen("sortaret.out","w",stdout);
 load();
 memset(sel, false, sizeof(sel));
 dfs(1);
 reverse(C.begin(),C.end());
 for(it=C.begin(); it!=C.end(); it++)
   printf("%d ",*it);
printf("\n");
}