Cod sursa(job #468791)

Utilizator R.A.RFMI Romila Remus Arthur R.A.R Data 5 iulie 2010 01:07:32
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <vector>
#include <queue>
#include <bitset>
using namespace std;

ifstream in("sortaret.in");
ofstream out("sortaret.out");
vector<int>V[50001];
queue<int>Q;
bitset<50001>viz;
void DFS(int nod)
{
    int i,n;
    viz[nod]=1;
    Q.push(nod);
    for(i=0,n=V[nod].size();i<n;++i)
        if(!viz[V[nod][i]])
            DFS(V[nod][i]);
}
int main()
{
    int N,M,x,y,n,i;
    in>>N>>M;
    while(M--)
    {
        in>>x>>y;
        V[x].push_back(y);
    }
    //DFS
    for(i=1;i<=N;i++)
        if(!viz[i])
            DFS(i);
    while(!Q.empty())
    {
        out<<Q.front()<<' ';
        Q.pop();
    }
    return 0;
}