Cod sursa(job #2704530)

Utilizator CosmanIulianCosman Iulian CosmanIulian Data 10 februarie 2021 19:07:07
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#define WIN32_LEAN_AND_MEAN
#include<fstream>
#include <queue>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n, m, x, y;
bool v[100001];
deque <int> q;
struct c
{
    deque <int> vec;
};
c g[100001];

 void parcurgere(int t)
{
    v[t]=1;
    while(!g[t].vec.empty())
    {
        if(!v[g[t].vec.front()])
            parcurgere(g[t].vec.front());
        g[t].vec.pop_front();
    }
    q.push_back(t);
}

int main()
{
    fin>>n>>m;
    for(int i=1;i<=m;i++)
    {
        fin>>x>>y;
        g[x].vec.push_back(y);
    }
    for(int i=1;i<=n;i++)
    if(!v[i])
        parcurgere(i);
    while(!q.empty())
    {
        fout<<q.back()<<" ";
        q.pop_back();
    }
    return 0;
}