Cod sursa(job #1253404)

Utilizator Laura.miLaura Mitrache Laura.mi Data 1 noiembrie 2014 11:25:47
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

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

int n,m;
vector <int> L[50002];
int timpi_fin[50002];
int k;
int viz[50002];

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

void DFS_Timpifinali(int x)
{
    viz[x]=1;
    int i;
    for(i=0;i<L[x].size();i++)
        if( viz[ L[x][i] ] == 0 )
                   DFS_Timpifinali(L[x][i]);
    timpi_fin[++k]=x;

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

    for(i=n;i>=1;i--)
    g<<timpi_fin[i]<<" ";
    g<<"\n";
    g.close();

    return 0;
}