Cod sursa(job #2080827)

Utilizator ssebiStanciu Sebastian ssebi Data 3 decembrie 2017 15:56:28
Problema Sortare topologica Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
#define NMAX 100
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
vector<vector <int> > vec(NMAX);
vector<bool> vizitare(NMAX);
std::stack<int> stiva;
void sortaretopologica(int i)
{
        int j,r;
        vizitare[i]=1;
        for(j=0;j!=vec[i].size();j++)
        {

            if(!vizitare[vec[i][j]])
                sortaretopologica(vec[i][j]);

        }
        stiva.push(i);
}


int main()
{
    int a,b,c,d;
    f>>a>>b;
    for(int i=1;i<=b;i++)
    {
        f>>c>>d;
        vec[c].push_back(d);
      //  cout<<d;
    }

   for(int i=1;i<=a;i++)
    {
    if(!vizitare[i])
        sortaretopologica(i);
    }
    while(!stiva.empty())
    {
        g<<stiva.top()<<' ';
        stiva.pop();
    }

    return 0;
}