Cod sursa(job #2118537)

Utilizator AlexVulpoiuAlexandru Vulpoiu AlexVulpoiu Data 30 ianuarie 2018 18:52:20
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <cstdio>
#include <vector>
using namespace std;
int n,m,i,j,st[50001];
vector <int> a[50001];
vector <int>::iterator it;
bool v[50001];
void dfs(int x)
{
    int i,j;
    if(!v[x])
    {
        v[x]=1;
        for(i=0;i<a[x].size();i++)
        {
            j=a[x][i];
            dfs(j);
        }
        st[++st[0]]=x;
    }
}
int main()
{
    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);
    scanf("%d %d\n",&n,&m);
    while(m)
    {
        scanf("%d %d\n",&i,&j);
        a[i].push_back(j);
        m--;
    }
    for(i=1;i<=n;i++)
        if(!v[i])
            dfs(i);
    for(i=st[0];i>=1;i--)
        printf("%d ",st[i]);
    printf("\n");
    return 0;
}