Cod sursa(job #3255461)

Utilizator alecu2008Alecu Alexandru alecu2008 Data 10 noiembrie 2024 17:33:11
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <bits/stdc++.h>
using namespace std;

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

const int nmax=5e4+1;
int x,y,n,m;

bitset<nmax>vis;
vector<int>top;
vector<vector<int>> graf;

void dfs(int nod){
    vis[nod]=1;
    for(int i:graf[nod]){
        if(!vis[i]){
            dfs(i);
        }
    }
    top.emplace_back(nod);


}


int main()
{
   fin>>n>>m;
   graf.assign(n,vector<int>());
   for(int i=0;i<m;i++){
        fin>>x>>y;
        x--;
        y--;
        graf[x].push_back(y);
   }
   for(int i=0;i<n;i++){
        if(!vis[i]){
            dfs(i);
        }
   }
   reverse(top.begin(),top.end());
   for(int i:top){
    fout<<i+1<<" ";
   }
   return 0;
}