Pagini recente » Cod sursa (job #2086023) | Cod sursa (job #2268023) | Cod sursa (job #310255) | Cod sursa (job #3232713) | Cod sursa (job #377323)
Cod sursa(job #377323)
#include<fstream.h>
#include<iostream.h>
int c[51000],m,n,i,v[101000][2],x,y,start[51000],grad[51000],p,u,t,pus[51000],tt;
int main()
{
ifstream f("sortaret.in");
ofstream g("sortaret.out");
f>>n>>m;
for(i=1;i<=m;i++)
{
f>>x>>y;
v[i][0]=y;
v[i][1]=start[x];
start[x]=i;
grad[y]++;
}
p=1;
for(i=1;i<=n;i++)
if(!grad[i])
{
c[++u]=i;
pus[i]=1;
t=start[i];
while(t)
{
grad[v[t][0]]--;
t=v[t][1];
}
}
for(i=p;i<=u&&p<=n;i++)
{
t=start[c[i]];
while(t)
{
if(!grad[v[t][0]]&&!pus[v[t][0]])
{
c[++u]=v[t][0];
pus[v[t][0]]=1;
tt=start[v[t][0]];
while(tt)
{
if(grad[v[tt][0]])
grad[v[tt][0]]--;
tt=v[tt][1];
}
}
t=v[t][1];
}
}
for(i=1;i<=n;i++)
g<<c[i]<<' ';
return 0;
}