Pagini recente » Cod sursa (job #1222923) | Cod sursa (job #3166727) | Cod sursa (job #1889579) | Cod sursa (job #2259532) | Cod sursa (job #1439280)
using namespace std;
#include <fstream>
FILE *f=fopen ("sortaret.in","r");
FILE *fout=fopen ("sortaret.out", "w");
int n,m,x,y,deg[50001],g[50001][100],q[50001];
void read();
void solve();
void write();
int main ()
{
read();
solve();
write();
return 0;
}
void read()
{
fscanf(f,"%d%d",&n,&m);
while(m--)
{
fscanf(f,"%d%d",&x,&y);
g[x][++g[x][0]]=y;
deg[y]++;
}
}
void solve()
{
int i,j,x;
for(i=1; i<=n; i++)
{
if(!deg[i])
{
q[++q[0]]=i;
}
}
for(i=1; i<=n; i++)
{
x=q[i];
for(j=1; j<=g[x][0]; j++)
{
deg[g[x][j]]--;
if(!deg[g[x][j]]) q[++q[0]]=g[x][j];
}
}
}
void write()
{
int i;
for(i=1; i<=q[0]; i++) fprintf(fout,"%d ",q[i]);
}