Pagini recente » Cod sursa (job #143551) | Cod sursa (job #2261449) | Cod sursa (job #1514343) | Cod sursa (job #1777250) | Cod sursa (job #1409858)
#include <bits/stdc++.h>
using namespace std;
#ifdef INFOARENA
ifstream f("sortaret.in");
#define cout g
#else
ifstream f("date.in");
#endif // INFOARENA
ofstream g("sortaret.out");
#define nmax 50001
#define foor(it,v) for(__typeof(v.begin()) it=v.begin();it!=v.end();++it)
vector <int> G[nmax];
int n,m,i,x,y;
bool viz[nmax];
int gr[nmax],nod;
int q[nmax],iq,sq;
int main()
{
f>>n>>m;
for(;m;--m)
{
f>>x>>y;
G[y].emplace_back(x);
++gr[x];
}
for(i=1;i<=n;++i) if(gr[i]==0)
{
q[++sq]=i;
viz[i]=true;
}
iq=1;
while(iq<=sq)
{
nod=q[iq++];
for(auto vec:G[nod])
if(!viz[vec])
{
--gr[vec];
if(gr[vec]==0)
{
viz[vec]=true;
q[++sq]=vec;
}
}
}
for(;sq;--sq) cout<<q[sq]<<' ';
return 0;
}