Cod sursa(job #2313646)

Utilizator DianaIfrosaIfrosa Diana DianaIfrosa Data 7 ianuarie 2019 11:51:30
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>
#define N 50005
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector<int> G[N]; ///graf
bool viz[N]; ///pt DFS
int n,m; ///input
stack <int>S; ///pt af inversa
void Read()
{
    int i,x,y;
    fin>>n>>m;
    for(i=1;i<=m;i++)
    {
        fin>>x>>y;
         G[x].push_back(y);
    }
}
void DFS(int x)
{   viz[x]=1;
    for(int i=0;i<G[x].size(); i++)
        if(!viz[G[x][i]])
          DFS(G[x][i]);
   S.push(x);
}
void SortareTop()
{
  for(int i=1;i<=n;i++) ///parcurse toate nodurile
       if(!viz[i]) DFS(i);

}
void Write()
{
    while(!S.empty())
    {
        fout<<S.top()<<" "; S.pop();
    }
}
int main()
{  Read();
   SortareTop();
   Write();
    return 0;
}