Cod sursa(job #1292817)

Utilizator bujorcatalin14Bujor Catalin bujorcatalin14 Data 14 decembrie 2014 20:19:16
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include <iostream>
#include <vector>
#define nmax 50005
using namespace std;

ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector <int> L[nmax];
int n ,m;
bool viz[nmax];
int sol[nmax],nr;

void Citire()
{
    int x,i,y;
    fin>>n>>m;
    for(i=1;i<=m;i++)
    {
        fin>>x>>y;
        L[x].push_back(y);
    }
    fin.close();
}


void DFS(int nod){
    vector <int>:: iterator i;
    viz[nod]=1;
    for(i=L[nod].begin();i!=L[nod].end();i++)
        if(!viz[*i])
            DFS(*i);
    sol[++nr]=nod;
}




int main()
{
    int i;
    Citire();
    for(i=1;i<=n;i++)
       if(!viz[i])
      DFS(i);

    for(i=nr;i>=1;i--)
     fout<<sol[i]<<" ";
     fout.close();
    return 0;
}