Cod sursa(job #1025428)

Utilizator heracleRadu Muntean heracle Data 9 noiembrie 2013 22:31:37
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <cstdio>
#include <vector>

using namespace std;

const int Q=50001;
bool vnod[Q];
int rez[Q];
vector<int> g[Q];

void dfs(int x)
{
    vnod[x]=1;
    rez[++rez[0]]=x;
    for(int i=1; i<g[x].size(); i++)
    {
        if(!vnod[g[x][i]])
        {
            dfs(g[x][i]);
        }
    }
}


int main()
{

    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);
    int n,m,x,y;
    scanf("%d%d",&n,&m);

    for(int i=1; i<=m; i++)
    {
        scanf("%d%d",&x,&y);
        g[x].push_back(y);
    }
    for(int i=1; i<=n; i++)
    {
        if(!vnod[i])
            dfs(i);
    }
    for(int i=1; i<= rez[0]; i++ )
        printf("%d ",rez[i]);

    return 0;
}