Cod sursa(job #953096)

Utilizator deresurobertoFMI - Deresu Roberto deresuroberto Data 24 mai 2013 20:42:35
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<cstdio>
#include<vector>
#define nx 50007
using namespace std;
int n,m,i,k,x,y,viz[nx],d[nx];
vector<int>v[nx];

void dfs(int x)
{
    int j;
    for(j=0;j<v[x].size();j++)
    if(viz[v[x][j]]==0)printf("%d ",v[x][j]),viz[v[x][j]]=1,dfs(v[x][j]);
}

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);
        d[y]++;
    }
    k=n;
    for(i=1;i<=n;i++){
    if(d[i]<k)k=d[i],x=i;
    if(d[i]==0)printf("%d ",i);
    }
    viz[x]=1;
    dfs(x);
    return 0;
}