Cod sursa(job #2871314)

Utilizator DragonoidOmeganume nume DragonoidOmega Data 14 martie 2022 10:41:19
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <vector>
#include <unordered_map>
#include <queue>
#define F first
#define S second


using namespace std;

ifstream cin("sortaret.in");
ofstream cout("sortaret.out");

struct adat
{
    bool nemkezd,lat;
    vector <int> sz;
};

unordered_map <int,adat> x;

queue <int> q;
void mely(int a)
{
    x[a].lat=1;
    for(auto e:x[a].sz)
    {
        if(!x[e].lat)
        {
            mely(e);
        }
    }
    q.push(a);
}

int n,m,i,a,b;
int main()
{
    cin>>n>>m;
    for(i=1;i<=m;++i)
    {
        cin>>b>>a;
        x[a].sz.push_back(b);
        x[b].nemkezd=1;
    }
    for(auto e:x)
    {
        if(e.S.nemkezd==0)
        {
            mely(e.F);
        }
    }

    while(!q.empty())
    {
        cout<<q.front()<<" ";
        q.pop();
    }
}