Cod sursa(job #3232080)

Utilizator popuPop Matei Tudor popu Data 28 mai 2024 20:00:27
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>

#define f first
#define s second

using namespace std;

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

vector<int> res;
vector<vector<int>> graf;
int n, m, vis[50005];

void ct()
{
    int x, y;
    fin >> n >> m;
    graf.resize(n + 1);
    for(int i = 1; i <= m; i++)
    {
        fin >> x >> y;
        graf[x].push_back(y);
    }
}

void dfs(int node)
{
    vis[node] = 1;
    for(int i = 0; i < graf[node].size(); i++)
    {
        if(!vis[graf[node][i]])
            dfs(graf[node][i]);
    }
    res.push_back(node);
}

int main()
{
    ct();
    for(int i = 1; i <= n; i++)
    {
        if(!vis[i])
            dfs(i);
    }
    for(int i = n - 1; i >= 0; i--)
        fout << res[i] << ' ';

    return 0;
}