Cod sursa(job #2704289)

Utilizator CosmanIulianCosman Iulian CosmanIulian Data 10 februarie 2021 10:46:31
Problema Sortare topologica Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <queue>
#include <deque>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
long n, m, b, c, v[100005];
deque <long> q;

struct x
{
    long x, y;
};
x a[400005];

void parcurgere(long j)
{
    v[j]=1;
    for(long i=1;i<=m;i++)
    {
        if(a[i].x==j && v[a[i].y]==0)
        {
            parcurgere(a[i].y);
        }
    }
    q.push_back(j);
}

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