Cod sursa(job #862215)

Utilizator alexandru70Ungurianu Alexandru alexandru70 Data 22 ianuarie 2013 14:00:06
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <vector>
using namespace std;

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

vector <int> G[50001];
vector <int> sol;
bool visitat[50001];
int n,m;

void visit(int v)
{
    visitat[v]=true;
    for(int i = 0; i < G[v].size();++i)
    {
        if(!visitat[G[v][i]]) visit(G[v][i]);
    }
    sol.push_back(v);
}

int main()
{
    in >> n >> m;
    for(int i = 0; i<n;++i)
    {
        int x,y;
        in >> x >> y;
        G[x].push_back(y);
    }
    for(int i = 1; i <= n; ++i)
        if(!visitat[i]) visit(i);
    for(int i = sol.size()-1; i!=0; --i)
    {
        out << sol[i] << ' ';
    }
}