Cod sursa(job #907651)

Utilizator dragangabrielDragan Andrei Gabriel dragangabriel Data 8 martie 2013 10:16:55
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<cstdio> 
#include<deque> 
#include<vector> 
#include<algorithm> 
using namespace std; 
int n,i,k,m,x,y,b; 
bool viz[50005]; 
vector<int>v[50005]; 
deque<int>c; 
void df(int x) 
{ 
int j; 
viz[x]=true; 
for (j=0;j<v[x].size();j++) if (!viz[v[x][j]]) df(v[x][j]); 
c.push_back(x); 
} 
int main() 
{ 
freopen("sortaret.in","r",stdin); 
freopen("sortaret.out","w",stdout); 
scanf("%d %d",&n,&m); 
for (i=1;i<=m;i++) scanf("%d %d ",&x,&y),v[x].push_back(y); 
for (i=1;i<=n;i++) if (!viz[i]) df(i); 
while (!c.empty()) printf("%d ",c.back()),c.pop_back(); 
return 0; 
}