Cod sursa(job #1631879)

Utilizator GeraltMirea Radu Geralt Data 5 martie 2016 19:41:05
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>

using namespace std;

vector <int> v[50001];
int viz[50001],n,m;
stack<int> q;

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



void DF(int i){
int j;

for(j=0;j<v[i].size();j++){
    if(viz[v[i][j]]==0){
            viz[v[i][j]]=1;
        DF(v[i][j]);
        q.push(v[i][j]);
    }
}

}


int main()
{ int x,y,i,j;

    f>>n>>m;

    for(i=1;i<=m;i++)
    f>>x>>y, v[x].push_back(y);;

for(i=1;i<=n;i++)
if(viz[i]==0){
        viz[i]=1;
DF(i);
q.push(i);
}

while(q.size()!=0){
    g<<q.top()<<" ";
    q.pop();
}

    return 0;
}