Cod sursa(job #2115562)
| Utilizator | Data | 26 ianuarie 2018 21:28:13 | |
|---|---|---|---|
| Problema | Sortare topologica | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
const int nmax=50002;
vector <int> G[nmax];
queue <int> Q;
int n,m,v[nmax];
int main()
{
int a,b;
fin>>n>>m;
for(int i=1;i<=m;++i){
fin>>a>>b;
G[a].push_back(b);
v[b]++;
}
for(int i=1;i<=n;++i)if(!v[i])Q.push(i);
while(!Q.empty()){
fout<<Q.front()<<' ';
for(auto nn: G[Q.front()])
if(!--v[nn])Q.push(nn);
Q.pop();
}
fout<<'\n';
return 0;
}
