Cod sursa(job #748943)

Utilizator razielreaperMatei Andrei razielreaper Data 15 mai 2012 10:49:45
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
#include<vector>
using namespace std;
int nr,n,m,x,y,i,p,timp,st[200000];
bool sel[200005];
vector<int> a[200005];
vector<int>::iterator it;
ifstream f("sortaret.in");
ofstream g("sortaret.out");

void dfs(int x)
{
    vector<int>::iterator it;
    sel[x]=true;
    for(it=a[x].begin();it!=a[x].end();it++)
    if(!sel[*it]){sel[*it]=true;dfs(*it);}
    st[++p]=x;
}
int main()
{
    f>>n>>m;
    for(i=1;i<=m;i++){
    f>>x>>y;
    a[x].push_back(y);
    }
    timp=0;
    for(i=1;i<=n;i++)
    if(sel[i]==false){
    dfs(i);}
    for(i=p;i>=1;i--)g<<st[i]<<' ';
    return 0;
}