Cod sursa(job #2458091)

Utilizator gabriel_212MitracheG gabriel_212 Data 19 septembrie 2019 17:21:47
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>
#define limit 50100
using namespace std;
int n,m,a,b;
vector <int>G[limit];
vector <int> solutie;
int grad[limit]{};
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
bool viz[limit]{};
void citire(){
fin>>n>>m;
for(int i=1;i<=m;i++){
        fin>>a>>b;
    G[a].push_back(b);
    grad[b]++;
}
}
void sortarerecursiva(int a)
{

viz[a]=true;
        for(auto j:G[a])
    {
  if(viz[j]==0)
        {
    sortarerecursiva(j);
        }
    }
solutie.push_back(a);
}


int main()
{citire();
for(int i=1;i<=n;i++){
        if(viz[i]==0)
    sortarerecursiva(i);
}
reverse(solutie.begin(),solutie.end());
for(auto x:solutie){
    fout<<x<<" ";
}

fin.close();
fout.close();
    return 0;
}