Cod sursa(job #2272007)

Utilizator lucaperjuLuca Perju Verzotti lucaperju Data 29 octombrie 2018 16:34:53
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream cin ("sortaret.in");
ofstream cout ("sortaret.out");
vector <int> v[100003];
vector <int> vv[100003];
int n,m,viz[100003],rez[100003],k=0;
void citire ()
{
    int i,a,b,j;
    cin>>n>>m;
        for(j=1; j<=m; ++j)
        {
            cin>>a>>b;
            v[a].push_back(b);
            vv[b].push_back(a);
        }
}
int dfs (int poz)
{
    viz[poz]=1;
    int i,nn;
    for(i=0;i<v[poz].size();++i)
    {
        nn=v[poz][i];
        if(!viz[nn])
            dfs(nn);
    }
    rez[++k]=poz;
}
int main()
{
    int i;
    citire();
    for(i=1;i<=n;++i)
    {
        if(!viz[i])
            dfs(i);
    }
    for(i=n;i>=1;--i)
        cout<<rez[i]<<' ';
    return 0;
}