Cod sursa(job #1860358)

Utilizator raduzxstefanescu radu raduzx Data 27 ianuarie 2017 23:34:22
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <fstream>

using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
struct nod
{
    int val;
    nod *urm;
};
typedef nod *pnod;
pnod v[50003],p;
bool use[50003];
int stiva[50003],st;
void ad(int x,int y)
{
    p=new nod;
    p->val=y;
    p->urm=v[x]->urm;
    v[x]->urm=p;
}
int n,m;
void dfs(int i)
{
    pnod p;
    st+=1;
    stiva[st]=i;
    p=v[i]->urm;
    while(p)
    {
        if(use[p->val]==0)
        {
            use[p->val]=1;
            dfs(p->val);
        }
        p=p->urm;
    }

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

    f>>n>>m;
    for(i=1;i<=n;i++)
    {
        v[i]=new nod;
        v[i]->urm=0;
    }
    for(i=1;i<=m;i++)
    {
        f>>x>>y;
        ad(x,y);
    }
    for(i=1;i<=n;i++)
    {
        if(use[i]==0)
        {
            st=0;
            use[i]=1;
            dfs(i);
            for(j=1;j<=st;j++)
            {
                g<<stiva[j]<<" ";
            }
           // g<<'\n';
        }
    }
    return 0;
}