Pagini recente » Cod sursa (job #413066) | Cod sursa (job #1905090) | Cod sursa (job #516155) | Cod sursa (job #316841) | Cod sursa (job #1814984)
#include <fstream>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m,lista[100001],urm[100001],inc[50001],sf,stiva[50001];
int gr[50001];
bool vf[50001];
int main()
{
f>>n>>m;
int x,y;
for(int i=1;i<=m;i++)
{
f>>x>>y;
lista[++sf]=y;
urm[sf]=inc[x];
inc[x]=sf;
gr[y]++;
}
int inc2,sf;
inc2=1;
sf=0;
for(int i=1;i<=n;i++)
if(!gr[i])
{
vf[i]=true;
stiva[++sf]=i;
}
while(inc2<=sf)
{
if(!gr[stiva[inc2]])
g<<stiva[inc2]<<" ";
for(int i=inc[stiva[inc2]];i;i=urm[i])
if(gr[lista[i]])
{
if(!vf[lista[i]])
{
vf[lista[i]]=true;
stiva[++sf]=lista[i];
}
gr[lista[i]]--;
}
vf[stiva[inc2]]=false;
inc2++;
}
return 0;
}