Cod sursa(job #2855898)

Utilizator razvan.chChelariu Razvan Dumitru razvan.ch Data 23 februarie 2022 09:47:29
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include<bits/stdc++.h>
#define nlim 50005
#define pb push_back

using namespace std;

ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m,deg[nlim],Q[nlim];
vector<int>mat[nlim];
void solve()
{
   for(int i=1;i<=n;i++)
   {
       if(deg[i]==0)
       {
           Q[++Q[0]]=i;
       }
   }
   vector<int>::iterator it;

   for(int i=1;i<=n;i++)
   {
       int nod=Q[i];
       for(it=mat[nod].begin();it!=mat[nod].end();++it)
       {
            deg[*it]--;
            if(deg[*it]==0)
                Q[++Q[0]]=*it;
       }
   }
   for(int i=1;i<=n;i++)
    cout<<Q[i]<<" ";
}
void cetire()
{
    f>>n>>m;
    for(int i=1; i<=m; i++)
    {
        int a,b;
        f>>a>>b;
        mat[a].pb(b);
        deg[b]++;
    }
}
int main()
{
    cetire();
    solve();

}