Cod sursa(job #1132282)

Utilizator omerOmer Cerrahoglu omer Data 2 martie 2014 22:20:38
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include<stdio.h>
#include<queue>
using namespace std;
FILE *f,*g;
queue<int> veci[50001];
queue<int> good;
int deg[50001];
int main()
{
    int i,j,n,m,k;
    f=fopen("sortaret.in","r");
    g=fopen("sortaret.out","w");
    fscanf(f,"%d%d",&n,&m);
    for(i=1;i<=m;i++)
        {
            fscanf(f,"%d%d",&k,&j);
            deg[j]++;
            veci[k].push(j);
        }
    for(i=1;i<=n;i++) if (deg[i]==0) good.push(i);
    while(!good.empty())
        {
            i=good.front();
            fprintf(g,"%d ",i);
            good.pop();
            while(!veci[i].empty())
                {
                    j=veci[i].front();
                    deg[j]--;
                    if (deg[j]==0) good.push(j);
                    veci[i].pop();
                }
        }





    return 0;
}