Cod sursa(job #2646402)

Utilizator cristiemanuelstroe cristian emanuel cristiemanuel Data 1 septembrie 2020 00:21:05
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include  <iostream>
#include  <fstream>
#include  <vector>
#include  <stack>
#define pb push_back

using namespace std;

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

const int Nmax = 5e5+5;
vector <int>G[Nmax];
bool v[Nmax];
int n, m;
stack <int>S;

void read()
{
  in>>n>>m;
  for(int i = 1; i <= m; i++)
  {
    int x, y;
    in>>x>>y;
    G[x].pb(y);
  }
}


void dfs(int nod)
{
  v[nod] = 1;
  for(auto vec : G[nod])
    if(!v[vec])
      dfs(vec);
  S.push(nod);
}

void solve()
{
    dfs(1);
    while(!S.empty())
    {
      int nod = S.top();
      S.pop();
      out<<nod<<' ';
    }
}

int main()
{
  read();
  solve();
}