Cod sursa(job #905704)

Utilizator redls1995nechita laura redls1995 Data 6 martie 2013 08:38:12
Problema Sortare topologica Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <cstdio>

using namespace std;
int a[103][103],pred[102],q[102];
int main()
{
    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);
    int n,i,j,k,l,r,b,c,p,u,min;
    scanf("%d%d",&n,&r);
    for(i=1;i<=r;i++)
    {
        scanf("%d%d",&b,&c);
        pred[c]++;
        a[b][a[b][0]+1]=c;
        a[b][0]++;
    }
    p=1;
    u=0;
   for(i=1;i<=n;i++)
     {

         if (pred[i]==0)
         {
             u++;
             q[u]=i;
             //printf("%d ",i);
         }
      }
    while(u>=p)
    {
        for(i=1;i<=a[q[p]][0];i++)
        {
            pred[a[q[p]][i]]--;
            if (pred[a[q[p]][i]]==0)
            {
            u++;
            q[u]=a[q[p]][i];
           // printf("%d ",i);
            }
        }
        printf("%d ",q[p]);
        p++;
    }
    return 0;
}