Cod sursa(job #2810082)

Utilizator luciabianca2405Tudorache Lucia Bianca luciabianca2405 Data 28 noiembrie 2021 13:59:17
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include<fstream>
#include<vector>
#include<stack>
using namespace std;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
int n;
vector<bool>use;
vector<vector<int>>g;
stack<int>sol;
void read()
{
    int m,x,y;
    cin>>n>>m;
    use=vector<bool>(n+1);
    g=vector<vector<int>>(n+1);
    for(int i=1; i<=m; i++)
    {
        cin>>x>>y;
        g[x].push_back(y);
    }
}
void dfs(int np)
{
    use[np]=1;
    for(auto v:g[np])
        if(!use[v])
            dfs(v);
    sol.push(np);
}
void afisare()
{
    int vf;
    while(!sol.empty())
    {
        vf=sol.top();
        cout<<vf<<' ';
        sol.pop();
    }
}
int main()
{
    read();
    for(int i=1; i<=n; i++)
        if(!use[i])
            dfs(i);
    afisare();
}