Pagini recente » Cod sursa (job #1905511) | Cod sursa (job #2036365) | Cod sursa (job #2138661) | Cod sursa (job #1322191) | Cod sursa (job #711665)
Cod sursa(job #711665)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
#define MAXN 50003
int n,m,i,j,grad[MAXN],a,b,c;
vector<int> graf[MAXN],rez;
queue<int> q;
int main() {
fin>>n>>m;
for(i=1;i<=m;i++) {
fin>>a>>b;
graf[a].push_back(b);
grad[b]++;
}
for(i=1;i<=n;i++)
if (grad[i]==0)
q.push(i);
while (!q.empty()) {
c=q.front(); q.pop();
if (grad[c]==0) rez.push_back(c);
for(i=0;i<graf[c].size();i++) {
grad[graf[c][i]]--;
if (grad[graf[c][i]]==0) q.push(graf[c][i]);
}
graf[c].clear();
}
for(i=0;i<rez.size();i++) fout<<rez[i]<<" ";
fout<<"\n";
fout.close();
return 0;
}