Pagini recente » Cod sursa (job #832904) | Cod sursa (job #1840738) | Cod sursa (job #1005116) | Cod sursa (job #1875215) | Cod sursa (job #796082)
Cod sursa(job #796082)
#include <cstdio>
using namespace std;
int n,m,a[1000000][100000000],u,ul;
int sol[10000000],c[100000000],viz[1000000000];
int ok[10000000];
void citire ()
{
freopen("sortaret.in","r",stdin);
int x,y;
scanf("%d %d",&n,&m);
for(int i=0;i<m;i++)
{
scanf("%d %d",&x,&y);
a[x][y]=1;
ok[y]=1;
}
for(int i=1;i<=n;i++)
if(ok[i]==0){
c[u++]=i;
}
}
int ver(int x)
{
for(int i=1;i<=n;i++)
if(a[i][x]==1)
return 0;
return 1;
}
void parc ()
{
for(int i=0;i<u;i++){
viz[c[i]]=1;
sol[ul++]=c[i];
for (int j=1;j<=n;j++){
if(a[c[i]][j]==1){
a[c[i]][j]=0;
if (ver(j))
c[u++]=j;
}
}
}
}
void afisare ()
{
freopen("sortaret.out","w",stdout);
for(int i=0;i<ul;i++)
printf("%d ",sol[i]);
printf("\n");
}
int main ()
{
citire();
parc();
afisare();
return 0;
}