Cod sursa(job #2534321)

Utilizator lucianul31Moisii Lucian lucianul31 Data 30 ianuarie 2020 13:43:14
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include<bits/stdc++.h>

using namespace std;

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

const int NMAX=1e5+10;
bitset < NMAX > Seen;
vector < int > Results, Edge[NMAX];
int n, m;
deque < int > R;

void Read()
{
    in>>n>>m;
    int x, y;
    for(int i=1; i<=m; i++)
        in>>x>>y, Edge[x].push_back(y);
}

void DFS(int x)
{
    Seen[x]=1;
    for(int i : Edge[x])
        if(Seen[i]==0)
            DFS(i);
//    Results.push_back(x);
    R.push_front(x);
}

int main()
{
    Read();
    for(int i=1; i<=n; i++)
        if(Seen[i] == 0)
            DFS(i);
//    reverse(Results.begin(), Results.end());
//    for(int i : Results)
//        out<<i<<' ';
    for(int i : R)
        out<<i<<' ';
    return 0;
}