Cod sursa(job #1656480)

Utilizator StefanMudragMudrag Stefan StefanMudrag Data 19 martie 2016 13:38:39
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include<vector>
#include<fstream>
#include<stack>
#define NMAX 50000
using namespace std;

stack<int>sol;
vector<bool> viz(NMAX,false);

void dfs(vector<int> v[NMAX] , int nod ,ostream& fout)
{

    for (unsigned int i=0; i< v[nod].size(); ++i)
    {
        if ( viz[v[nod][i]]==false) {

            viz[v[nod][i]]=true;
            dfs(v,v[nod][i],fout);
        }



    }

   sol.push(nod);

}

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

    int n , m ;
   vector<int> v[NMAX];
   int x,y;

   fin>>n>>m;

   while (m--)
   {
       fin>>x>>y;

       v[x].push_back(y);
   }
   viz[1]=true;

   dfs(v,1,fout);

  while (!sol.empty())
  {
      fout<<sol.top()<< " ";
      sol.pop();
  }

  return 0;

}