Cod sursa(job #1189373)

Utilizator Alexa2001Alexa Tudose Alexa2001 Data 22 mai 2014 16:56:56
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <cstdio>
#include <vector>
#include <cstring>
using namespace std;
int q[100009],i,j,sel[100009],vect[10009],n,m,s,x,y;
vector<int> G[100009];


void bfs(int pl)
{
  int p,u,x;
  vector<int> :: iterator it;
  sel[pl]=true;
  p=u=1;
  q[1]=pl;

  while(p<=u)
  {
     x=q[p];
     for(it=G[x].begin();it!=G[x].end();++it)
     if(!sel[*it])
     {
        q[++u]=*it;
        sel[*it]=true;

     }
    printf("%d ",x);
    ++p;
}
}


int main()
{
    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);

    scanf("%d%d",&n,&m);

    for(i=1;i<=m;++i)
    {
       scanf("%d%d",&x,&y);
       G[x].push_back(y);

    }

    for(i=1;i<=n;++i)
    if(!sel[i])
    bfs(i);




    return 0;
}