Cod sursa(job #2402173)

Utilizator Gandalf29Demeter Csaba Gandalf29 Data 10 aprilie 2019 13:51:05
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
//#include <iostream>
#include <fstream>
#include <vector>
#include <deque>

using namespace std;

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

struct elem
{
    int lat,be;
    vector <int> sz;
};

vector <elem> x;
deque <int> r;
int n,m,i,a,b;

int melysegi(int csp)
{
    x[csp].lat=1;
    for(auto &e:x[csp].sz)
        if(x[e].lat==0) melysegi(e);
    r.push_front(csp);
}

int main()
{
    cin>>n>>m;

    x.resize(n+1);

    for(i=1;i<=n;++i)
        {
            x[i].be=0;
            x[i].lat=0;
        }

    for(i=1;i<=m;++i)
    {
        cin>>a>>b;
        x[a].sz.push_back(b);
        x[b].be++;
    }

    for(i=1;i<=n;++i)
        if(x[i].be==0)
        {
            melysegi(i);
        }

    for(auto &e:r)
        cout<<e<<" ";
    return 0;
}