Cod sursa(job #828267)

Utilizator stef1995mmarcu stefan ovidiu stef1995m Data 3 decembrie 2012 15:55:29
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
const int maxx=50005;
int n,m,i,a,b,afis[maxx],k;
bool viz[maxx];
vector <int> x[maxx];
void read()
{
    scanf("%d%d",&n,&m);
    for(i=1;i<=m;i++)
    {
        scanf("%d%d",&a,&b);
        x[a].push_back(b);
    }
}
void df(int nod)
{
    viz[nod]=true;
    for(int i=0;i<x[nod].size();i++)
        if(viz[x[nod][i]]==false)
            df(x[nod][i]);
    afis[++k]=nod;
}
void write()
{
    for(i=n;i>=1;i--)
        printf("%d ",afis[i]);
    printf("\n");
}
int main()
{
    freopen("mat.in","r",stdin);
    freopen("mat.out","w",stdout);
    read();
    for(i=1;i<=n;i++)
        if(viz[i]==false)
            df(i);
    write();
    return 0;
}