Cod sursa(job #2763528)

Utilizator Teodor_AxinteAxinte Teodor-Ionut Teodor_Axinte Data 14 iulie 2021 19:08:24
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <fstream>
#include <vector>
#include <bitset>
#include <iostream>

using namespace std;

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

vector <int> v[50010];
bitset<100010> viz;
int n,m,nod_start;

void dfs(int node)
{
    if(v[node].size()==0)
        return;
    if(!viz[node])
    {
        viz[node]=1;
        fout<<node<<" ";
    }
    for(auto it:v[node])
        if(!viz[it])
        {
            viz[it]=1;
            fout<<it<<" ";
            if(it>node+1)
            {
                for(int i=node+1;i<it;i++)
                    if(!viz[i])
                {
                    fout<<i<<" ";
                    viz[i]=1;
                }
            }
            dfs(it);
        }


}

int main()
{
    fin>>n>>m;
    for(int ct=0;m!=0;m--,ct++)
    {
        int x,y;
        fin>>x>>y;
        if(ct==0)
            nod_start=x;
        v[x].push_back(y);
    }
    dfs(nod_start);
    cout<<nod_start;
    return 0;

}