Cod sursa(job #1010545)

Utilizator laszloasandorLaszlo Sandor laszloasandor Data 15 octombrie 2013 10:01:33
Problema Sortare topologica Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;

#define MAXN 50100
#define pb push_back
#define fr(i,a,b) for(int i=a;i<=b;i++)

int n,m, v[MAXN], deg[MAXN]; vector<int> g[MAXN];

void topsort()
{
    fr(i,1,n)
    {
        fr(j,1,n)
            if(!v[j]&&deg[j]==0)
            {
                v[j]=1;
                printf("%d ",j);
                int k;
                for(k =0;k<g[j].size();k++)
                    deg[g[j][k]]--;
                break ;
            }
    }
}

void be()
{
    int i,a,b;
    scanf("%d %d\n",&n,&m);
    fr(i,1,m)
    {
        scanf("%d %d",&a,&b);
        g[a].pb(b);
        deg[b]++;
    }
}

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

    be();
    topsort();

    return 0;
}