Cod sursa(job #2867975)

Utilizator dianannnDiana Novac dianannn Data 10 martie 2022 17:45:55
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f ("sortaret.in");
ofstream g ("sortaret.out");
int n,m,d[50100],q[50100];
vector<int>a[50100];
void solve()
     {
         int i,x;
         vector<int>::iterator it;
         for (x=1;x<=n;x++)
              if (d[x]==0)
                  q[++q[0]]=x;
         for (i=1;i<=n;i++)
         {
             x=q[i];
             for(it=a[x].begin();it!=a[x].end();it++)
             {
                 d[*it]--;
                 if (d[*it]==0)
                     q[++q[0]]=*it;
             }
         }
     }
void read()
    {
        int i,x,y;
        f>>n>>m;
        for (i=1;i<=m;i++)
        {
            f>>x>>y;
            a[x].push_back(y);
            d[y]++;
        }
    }
void write()
    {
        int i;
        for (i=1;i<=n;i++)
             g<<q[i]<<" ";
    }
int main()
{
    read();
    solve();
    write();
    return 0;
}