Cod sursa(job #3364379)

Utilizator nverde1119Popa Narcis Constantin nverde1119 Data 2 septembrie 2026 13:19:23
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n, m, gr[50001];
vector<int>G[50001];
queue<int>Q;
void citire()
{
    f >> n >> m;
    int x, y;
    while(m--)
    {
        f >> x >> y;
        G[x].push_back(y);
        gr[y]++;
    }
}
void bfs()
{
    for(int i = 1; i <= n; i++)
    {
        if(gr[i] == 0)
            Q.push(i);
    }
    while(!Q.empty())
    {
        int x = Q.front();
        Q.pop();
        g << x << ' ';
        for(const auto &y : G[x])
        {
            gr[y]--;
            if(gr[y] == 0)
                Q.push(y);
        }
    }
}
int main()
{
    citire();
    bfs();
    f.close();
    g.close();
    return 0;
}