Cod sursa(job #2572686)
Utilizator | Data | 5 martie 2020 13:49:14 | |
---|---|---|---|
Problema | Sortare topologica | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.64 kb |
//#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
vector<int> v[50005];
int q[50005],cnt,f[50005];
int main()
{
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
int n,m,a,b;
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>a>>b;
v[a].push_back(b);
f[b]++;
}
for(int i=1;i<=n;i++){
if(f[i]==0){
q[++cnt]=i;
}
}
while(cnt!=0){
int x=q[cnt--];
cout<<x<<" ";
for(auto u:v[x]){
f[u]--;
if(f[u]==0)
q[++cnt]=u;
}
}
return 0;
}