Pagini recente » Cod sursa (job #1418962) | Cod sursa (job #501380) | Cod sursa (job #807644) | Cod sursa (job #2599478) | Cod sursa (job #3175650)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n, m, i, j, a, b, d[50005], x, ans[50005], k;
vector <int> v[50005];
queue <int> q;
int main()
{
fin>>n>>m;
for(i=1; i<=m; i++)
{
fin>>a>>b;
v[a].push_back(b);
d[b]++;
}
for(i=1; i<=n; i++)
if(d[i]==0)
{
q.push(i);
ans[++k]=i;
}
while(!q.empty())
{
x=q.front();
for(auto i=v[x].begin(); i<v[x].end(); i++)
{
d[*i]--;
if(d[*i]==0)
{
q.push(*i);
ans[++k]=*i;
}
}
q.pop();
}
for(i=1; i<=k; i++)
fout<<ans[i]<<" ";
return 0;
}