Cod sursa(job #1181209)

Utilizator SilverGSilver Gains SilverG Data 2 mai 2014 02:52:47
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
/*
    Keep It Simple!
*/

#include<fstream>
#include<iostream>
#include<vector>
using namespace std;

#define MaxN 50005

int N,M;
vector<int> G[MaxN],Final;
bool viz[MaxN];

void DFS(int node)
{
    viz[node] = 1;
    for(size_t i=0; i < G[node].size(); i++)
        if(!viz[G[node][i]])
            DFS(G[node][i]);
    Final.push_back(node);
}

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

        f >> N >> M;
        int x,y;

        for(int i=1;i<=M;i++)
        {
            f >> x >> y;
            G[x].push_back(y);
        }

        for(int i=1;i<=N;i++)
            if(!viz[i])
                DFS(i);

        for(size_t i=Final.size()-1;i>0;i--)
            g << Final[i] << " ";
            g << Final[0];
}