Cod sursa(job #3370043)

Utilizator TVladutTapu Vladut Iulian TVladut Data 23 octombrie 2026 17:24:39
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <fstream>
#include <vector>

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

void DFS(vector<vector<int>>& graph,vector<bool>& visit, vector<int>& rezult,int s){

    visit[s]=true;
    for (int i=0;i<graph[s].size();i++)
    {
        if(visit[graph[s][i]]==false)
            DFS(graph,visit,rezult,graph[s][i]);
    }
    rezult.push_back(s);
}


int main ()
{
    int v1,v2,n,m;
    fin>>n>>m;
    vector<vector<int>> graph(n+1);
    vector<bool> visit(n+1,false);
    vector<int> rezult;

    for (int i=0;i<m;i++)
    {

        fin>>v1>>v2;
        graph[v1].push_back(v2);
    }

    for (int i=1;i<=n;i++) {
        if (visit[i]==false) {
            DFS(graph, visit, rezult, i);
        }
    }
    for(int i=rezult.size()-1;i>0;i--)
    {
        fout<<rezult[i]<<" ";
    }
    fout<<rezult[0];
}