Pagini recente » Cod sursa (job #3323451) | Cod sursa (job #3323477) | Monitorul de evaluare | Cod sursa (job #711534) | Cod sursa (job #3351189)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int a ,b ,i, j, k, n, m, gi[50001], mat[50001][1001], q[50001], p,s;
bool viz[50001];
int main()
{
fin>>n>>m;
for(i =1; i<=m; i++){
fin>>a>>b;
mat[a][0]++;
mat[a][mat[a][0]] = b;
gi[b]++;
}
p =0;
for(i =1; i<=n; i++){
if(gi[i] == 0){
p++;
viz[i] =1;
q[p] = i;
}
}
s =1;
while(s <= p){
for(i =1; i<=mat[q[s]][0]; i++){
gi[mat[q[s]][i]]--;
if(gi[mat[q[s]][i]] == 0 && viz[mat[q[s]][i]] == 0){
p++;
viz[mat[q[s]][i]] = 1;
q[p] = mat[q[s]][i];
}
}
s++;
}
for(i =1; i<= p;i++){
fout<<q[i]<<" ";
}
}