Pagini recente » Cod sursa (job #3281059) | Cod sursa (job #1489029) | Cod sursa (job #196216) | Cod sursa (job #468039) | Cod sursa (job #2667483)
#include <bits/stdc++.h>
#include <random>
#define ll long long
#define int ll
using namespace std;
ifstream f ( "sortaret.in" );
ofstream g ( "sortaret.out" );
vector < int > G[50005];
int n,m,grad[50005];
vector < int > topo;
void toposort()
{
queue < int > q;
for(int i=1;i<=n;i++)
{
if(grad[i]==0) q.push(i);
}
while(q.size())
{
int nod=q.front();
topo.push_back(nod);
q.pop();
for(int v:G[nod])
{
grad[v]--;
if(grad[v]==0) q.push(v);
}
}
}
main()
{
f>>n>>m;
for(int i=1;i<=m;i++)
{
int a,b;
f>>a>>b;
G[a].push_back(b);
grad[b]++;
}
toposort();
for(int x:topo) g<<x<< ' ';
return 0;
}