Cod sursa(job #1371138)

Utilizator Nitu.Catalin1998Ioan Florin Catalin Nitu Nitu.Catalin1998 Data 3 martie 2015 19:22:52
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
#include <vector>
#include <deque>

using namespace std;

vector<deque<unsigned short> > L(50000 + 1, std::deque<unsigned short> (1));
bool viz[50000 + 1];
unsigned short n, m, i, j;

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

void travad(unsigned short i)
{
    fout << i << ' ';
    viz[i] = 1;
    unsigned short j = 1;
    while(j < L[i].size())
    {
        if(viz[L[i][j]] == 0)
            travad(L[i][j]);
        j++;
    }
}

int main()
{
    fin >> n >> m;
    for(i = 1; i <= m; i++)
    {
        unsigned short x, y;
        fin >> x >> y;
        L[x].push_back(y);
        //L[y].push_back(x);
    }
    for(i = 1; i <= n; i++)
    {
        if(viz[i] == 0)
        {
            travad(i);
            fout << ' ';
        }
    }
}