Cod sursa(job #1995762)

Utilizator horiacoolNedelcu Horia Alexandru horiacool Data 29 iunie 2017 02:23:24
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");

int N,M;
bool viz[50003];
vector <int> v[50003];

void BF(int xp)
{
    int p,u,C[50003];
    p = u = 1;
    C[p] = xp;
    viz[xp] = true;

    while( p <= u )
    {
        for(int k = 0 ; k < v[C[p]].size() ; k++)
        {
            if( viz[ v[C[p]][k] ] == false )
            {
                viz[ v[C[p]][k] ] = true;
                C[++u] = v[C[p]][k];
            }
        }
        p++;
    }
    for(int i = 1 ; i <= N ; i++)
        g<<C[i]<<' ';
}

int main()
{
    int x,y,rad;
    f>>N>>M;
    for(int i = 1 ; i <= M ; i++)
    {
        f>>x>>y;
        v[x].push_back(y);
        viz[y] = true;
    }
    for(int i = 1 ; i <= N ; i++)
    {
        if( viz[i] == false )
            rad = i;
        viz[i] = false;
    }
    BF(rad);
    return 0 ;
}