Cod sursa(job #918342)

Utilizator DaNutZ2UuUUBB Bora Dan DaNutZ2UuU Data 18 martie 2013 20:12:37
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#include <vector>
#include <deque>

using namespace std;

//ifstream fin("input.txt");
//ofstream fout("output.txt");

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

int n, m;
int pus[50001];
vector < int > V[50001];
deque < int > sol;

void citire()
{
    int x, y;

    fin >> n >> m;
    while(fin >> x >> y)
    {
        V[x].push_back(y);
        //V[y].push_back(x);
    }
}

void DF(int k)
{
    pus[k] = 1;

    for(int i = 0; i < V[k].size(); i++)
        if(!pus[V[k][i]]) DF(V[k][i]);
    sol.push_front(k);
}

void afis()
{
    for(int i = 0; i < sol.size(); i ++) fout << sol[i] << " ";
}

int main()
{
    citire();

    for(int i = 1; i <= n; i++)
    if(!pus[i]) DF(i);

    afis();

    fin.close();
    fout.close();
    fin.close();
}