Cod sursa(job #2457850)

Utilizator gabriel_212MitracheG gabriel_212 Data 18 septembrie 2019 21:10:43
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <vector>
#define limit 50100
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n,m,a,b;
vector <int>G[limit];
int grad[limit]{};
int sortat[limit]{};
void citire(){
fin>>n>>m;
for(int i=1;i<=m;i++){
    G[a].push_back(b);
    grad[b]++;
}
}
void sortare(){
     int x;
      vector <int>::iterator j;
for(x=1;x<=n;x++){
    if(grad[x]==0){
        sortat[++sortat[0]]=x;
    }
}
    for(int i=1;i<=n;i++){
            x=sortat[i];
            for( j=G[x].begin();j!=G[x].end();++j){
                grad[*j]--;
                if(grad[*j]==0){
                    sortat[++sortat[0]]=*j;
                }
            }
        }
    }


int main()
{citire();
sortare();
for(int i=1;i<=n;i++){
    fout<<sortat[i]<<" ";
}
fin.close();
fout.close();
    return 0;
}