Cod sursa(job #1379425)

Utilizator Vladinho97Iordan Vlad Vladinho97 Data 6 martie 2015 17:50:37
Problema Sortare topologica Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <vector>
#include <stack>
#define nmax 50009
using namespace std;

struct vecini
{
    vector <int> v;
};

vecini g[nmax];
int deg[nmax];
stack <int> ans;
void DFS(int n)
{
    int i,x;
    for(i=0;i<g[n].v.size();i++)
    {
        x=g[n].v[i];
        DFS(x);
    }
    ans.push(n);
}
int main()
{
    int n,m,i,x,y;
    ifstream f("sortaret.in");
    ofstream h("sortaret.out");
    f>>n>>m;
    for(i=1;i<=m;i++)
    {
        f>>x>>y;
        g[x].v.push_back(y);
        deg[y]++;
    }
    for(i=1;i<=n;i++)
    {
        if(deg[i]==0)
        {
            DFS(i);
        }
    }
    while(ans.empty()==0)
    {
        h<<ans.top()<<" ";
        ans.pop();
    }
    return 0;
}