Cod sursa(job #246073)

Utilizator mihai.cuculiciCuculici Mihail mihai.cuculici Data 19 ianuarie 2009 20:16:25
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 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];
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, viz[i]=1, g<<i<<" ";
    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;
}