Cod sursa(job #2407742)

Utilizator SmokeCiocotisan Cosmin Smoke Data 17 aprilie 2019 10:50:05
Problema Sortare topologica Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <vector>
#define MAX 50000
using namespace std;

vector <vector <int >> v1(MAX);
vector<int> postord;
vector<bool> viz(MAX , false);

int n , m;

void read_data()
{
    ifstream in("sortaret.in");
     in>>n>>m;

     int x,y;

     for(int  i = 0 ;  i < m ;i++)
            {
                in>>x>>y;
                v1[x].push_back(y);
            }
    in.close();

}


void dfs(int x)
{
    viz[x] = true;

    for(int  i = 0 ; i < v1[x].size() ; i++)
            if(!viz[v1[x][i]])
                    dfs(v1[x][i]);

    postord.push_back(x);

}
int main()
{

  read_data();

  for(int i  = 1 ; i<= n ;i++)



  for(int i = 1 ; i<= n ;i++)
    if(!viz[i])
         dfs(i);


         ofstream out("sortaret.out");


  vector < int> ::reverse_iterator rit;

  for(rit = postord.rbegin() ; rit < postord.rend() ; rit++)
        out<<*rit<<" ";


    return 0;
}