Cod sursa(job #3189466)

Utilizator Theo20067Cismaru Theodor-Alexe Theo20067 Data 5 ianuarie 2024 15:08:34
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include <vector>
#include <set>
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout("sortaret.out");
vector<int> L[100010],C;
int n,m,i,k,x,y,j,p,V[100010];
set <int> S;
int main()
{
    fin>>n>>m;
    for(i=1;i<=m;i++)
    {
        fin>>x>>y;
        L[x].push_back(y);
        V[y]++;
    }
    for(i=1;i<=n;i++)
        if(!V[i])
            S.insert(i);
    while(!S.empty())
    {
        p=*S.begin();
        C.push_back(p);
        S.erase(S.begin());
        for(j=0;j<L[p].size();j++)
        {
            int vecin=L[p][j];
            V[vecin]--;
            if(!V[vecin])
                S.insert(vecin);
        }
    }
    for(i=0;i<C.size();i++)
        fout<<C[i]<<" ";
    return 0;
}