Cod sursa(job #3317138)

Utilizator DariuzzHackerPrime Dariuzz Data 22 octombrie 2025 15:02:03
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include<fstream>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std ; 
ifstream cin("sortaret.in") ;
ofstream cout("sortaret.out");
int main(){


  int n , m ; 
    cin>>n>>m;
      int x , y ; 
      vector<vector<int> > v (n+1);
        vector<int> degree(n+1,0);
        queue<int> q ; 
      for(int i = 1 ; i <= m ; i ++ ){
           cin>>x>>y;
           v[x].push_back(y);
      }
  for(int i = 1 ; i <= n ; i ++ )
     for(int j = 0 ; j < v[i].size() ; j ++ )
        degree[v[i][j]] ++ ;
    for(int i = 1 ; i <= n ; i ++ ) 
       if(degree[i] == 0 ) 
         q.push(i);

           while(!q.empty()){
              int fr = q.front() ; 
                q.pop() ; 
                  cout<<fr<< ' ';
                    for(int j = 0 ; j < v[fr].size() ; j ++ )
                       {
                         degree[v[fr][j]] -- ;
                           if(!degree[v[fr][j]])
                             q.push(v[fr][j]);
                       }
           }




     return 0 ; 
}