Cod sursa(job #2738859)

Utilizator MoldovanAndrei1Moldovan Andrei MoldovanAndrei1 Data 6 aprilie 2021 14:30:59
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 100005;
vector<int>v[NMAX];
bitset<NMAX>fr;
stack<int>st;
void dfs(int nod)
{
    fr[nod] = 1;
    for(auto edge : v[nod])
    {
        if(!fr[edge])dfs(edge);
    }
    st.push(nod);
}
int main()
{
    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);
    int n , i , j , k , a ,b;
    scanf("%d%d",&n,&k);
    for(i = 1 ; i <= k; i++)
    {
        scanf("%d%d",&a,&b);
        v[a].push_back(b);
    }
    for(i =1 ;i<=n;i++)
        if(!fr[i])dfs(i);
    while(!st.empty())
    {
        printf("%d ",st.top());
        st.pop();
    }
    return 0;
}