Cod sursa(job #3036820)

Utilizator daria_pDaria Popescu daria_p Data 25 martie 2023 10:20:05
Problema Sortare topologica Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>

using namespace std;
int a[1001][1001],d[1001],c[1001];
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int main()
{
    int n,i,j,m,x,y,u,p;
    fin>>n>>m;
    for(i=1; i<=m; i++)
    {
        fin>>x>>y;
        a[x][y]=1;
        d[y]++;
    }
    u=1;
    p=1;
    for(i=1; i<=n; i++)
    {
        if(d[i]==0) {c[u]=i;u++;}
    }
    while(p<=u)
    {
        x=c[p];
        for(i=1; i<=n; i++)
        {
            if(a[x][i]==1)
            {
                d[i]--;
                if(d[i]==0)
                {
                    c[u]=i;
                    u++;
                }
            }
        }
        p++;
    }
    /*int ok=0;
    for(i=1; i<=n; i++)
    {
        if(d[i]>0) ok=1;
    }    */
    for(i=1; i<=n; i++)
    {
        fout<<c[i]<<" ";
    }
    return 0;
}