Cod sursa(job #1754688)

Utilizator ghost24ghost ghost ghost24 Data 8 septembrie 2016 16:05:54
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<iostream>
#include<fstream>
#include<vector>
#include<stack>
#include<algorithm>
#define DX 50100

using namespace std;
fstream fin("sortaret.in",ios::in),fout("sortaret.out",ios::out);
int n,m,ap[DX];
vector<int> v[DX];
stack<int> st;

void citire();
void dfs(int nod);


int main()
{
    citire();
    for(int i=1;i<=n;i++) if(ap[i]==0) dfs(i);
    while(st.empty()==0)
    {
        fout<<st.top()<<" ";
        st.pop();
    }
}
void dfs(int nod)
{
    for(int i=0;i<v[nod].size();i++) if(ap[v[nod][i]]==0) dfs(v[nod][i]);
    ap[nod]=1;
    st.push(nod);
}


void citire()
{
    int i,a,b;
    fin>>n>>m;
    for(i=1;i<=m;i++)
    {
        fin>>a>>b;
        v[a].push_back(b);
    }
}