Pagini recente » Cod sursa (job #1770894) | Cod sursa (job #873224) | Cod sursa (job #1719777) | Cod sursa (job #1570775) | Cod sursa (job #3199770)
#include <iostream>
#include <vector>
#include <queue>
#include <fstream>
using namespace std;
vector<int> graf[50001];
int bf[50001];
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
void topologikusrendezes(int N) {
queue<int>sor;
vector<int>eredmeny;
for (int i=1;i<=N;i++) {
if (bf[i]==0) {
sor.push(i);
}
}
while (!sor.empty()) {
int csomopont=sor.front();
sor.pop();
eredmeny.push_back(csomopont);
for (int szomszed:graf[csomopont]) {
bf[szomszed]--;
if (bf[szomszed]==0) {
sor.push(szomszed);
}
}
}
for (int i=0;i<N;i++) {
fout<<eredmeny[i]<<" ";
}
}
int main() {
int N,M;
fin>>N>>M;
for (int i=0;i<M;i++) {
int x,y;
fin>>x>>y;
graf[x].push_back(y);
bf[y]++;
}
topologikusrendezes(N);
return 0;
}