Cod sursa(job #246080)

Utilizator mihai.cuculiciCuculici Mihail mihai.cuculici Data 19 ianuarie 2009 20:42:52
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<fstream>
#include<vector>
#define NMAX 50005
using namespace std;
ifstream f ("sortaret.in");
ofstream g ("sortaret.out");
vector <int> A[NMAX];
int viz[NMAX], prim[NMAX], coada[NMAX];

void parc(int i)
{
     viz[i]=1;
     g<<i<<" ";
     for(int j=0;j<A[i].size();j++)
     {
         if(!viz[A[i][j]]) parc(A[i][j]);   
     }
}

int main()
{
    int N, M, i, j, x, y, k=0,p=1;
    f>>N>>M;
    for(i=1;i<=M;i++) f>>x>>y, A[x].push_back(y), prim[y]=1;
    for(i=1;i<=N;i++) if(!prim[i]) /*coada[++k]=i,*/ parc(i);
    //echivalentul parcurgerii pe niveluri :D
    /*while(p<=k)
    {
       x=coada[p];
       p++;
       for(j=0;j<A[x].size();j++) if(!viz[A[x][j]]) viz[A[x][j]]=1, coada[++k]=A[x][j], g<<A[x][j]<<" ";
    }*/  
    f.close();
    g.close();
    return 0;
}