Cod sursa(job #3325298)

Utilizator oliv_1Bostinescu Octavian oliv_1 Data 25 noiembrie 2025 11:04:46
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <bits/stdc++.h>

using namespace std;
vector<int>v[50005];
queue<int>q;
int ans[50005];
int marime[50005];
int main()
{
    ifstream cin("sortaret.in");
    ofstream cout("sortaret.out");
  int n,m,x,y;
  cin>>n>>m;
  for(int i=0;i<m;i++)
  {
      cin>>x>>y;
      v[x].push_back(y);
      marime[y]++;
  }
  for(int i=1;i<=n;i++)
  {
      if(marime[i]==0)
        q.push(i);
  }
int curr=0;
while(q.size()>0)
{
    int tp=q.front();
    q.pop();
    curr++;
    ans[curr]=tp;
    for(auto var : v[tp])
    {
        marime[var]--;
        if(marime[var]==0)
            q.push(var);
    }
}
for(int i=1;i<=curr;i++)
    cout<<ans[i]<<" ";
    return 0;
}