Cod sursa(job #1107942)

Utilizator YoYoxxIftimesei Ioan YoYoxx Data 15 februarie 2014 09:16:07
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include<vector>
#define n_max 50001
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int g[50001];
int c[50001];
vector<int>graf[n_max];
void bfs(int k)
{
    int i,j,p,u,a;
    p=0;
    u=0;
    out<<k<<" ";
    while(p<=u)
    {
        for(i=0;i<graf[c[p]].size();i++)
        {
            a=graf[c[p]][i];
            u++;
            c[u]=a;
            g[a]--;
            if(g[a]==0) out<<a<<" ";
        }
    p++;
    }
}



int main()
{
    int n,m,i,a,b,grad,j;
    in>>n>>m;
    for(i=0;i<m;i++)
    {
        in>>a>>b;
        graf[a].push_back(b);
        g[b]++;
    }

    for(i=1;i<=n;i++)
    {
        if(g[i]==0) b=i;
    }
    c[0]=b;
    bfs(b);
    return 0;
}