Cod sursa(job #2089612)

Utilizator omegasFilip Ion omegas Data 16 decembrie 2017 20:21:16
Problema Sortare topologica Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>

using namespace std;

struct NODE
    {
        int val;
        NODE* next;
        NODE* q;
    };



int main()
{
    ifstream fin("sortaret.in");
    ofstream fout("sortaret.out");


    int n,m,i,k,l;
    fin >> n >> m;


    NODE S[50000];
    NODE N;
    NODE *p;

    for(i=1;i<=n;++i)
    {
        S[i].next=NULL;
        S[i].val=0;
    }

    for(i=1;i<=m;++i)
    {
        fin >> k >> l;

        p = new NODE;

        p->next=S[k].next;
        p->val =l;
        S[l].val++;

        S[k].next=p;
    }

    k = 0;

    while(k<n)
    for(i=1;i<=n;++i)
    {
     if(S[i].val==0)
     {
         S[i].val=-1;
         ++k;
         fout << i << " ";
         p = S[i].next;
         while(p!=NULL)
         {
             S[p->val].val--;
             p=p->next;
         }
     }

    }
    return 0;
}