Cod sursa(job #1378248)

Utilizator eneandradaEne Oana-Andrada eneandrada Data 6 martie 2015 11:14:05
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <bitset>

using namespace std;

ifstream f("sortaret.in");
ofstream g("sortaret.out");

vector <int> G[100001];
bitset <100001> viz;
int x,lista[100001];

void DFS(int nod)
{
    viz[nod]=1;
    for(int i=0;i<G[nod].size();i++)
    {
        if(viz[G[nod][i]]==0)
            DFS(G[nod][i]);
    }
    lista[++x]=nod;
}

int main()
{
    int N,M,i,a,b;
    f>>N>>M;
    for(i=1;i<=M;i++)
    {
        f>>a>>b;
        G[a].push_back(b);
    }

    for(i=1;i<=N;i++)
        if(viz[i]==0)
            DFS(i);
    for(i=x;i>=1;i--)
        g<<lista[i]<<" ";
    return 0;
}