Pagini recente » Cod sursa (job #1128649) | Cod sursa (job #1331712) | Istoria paginii utilizator/a_violeta | Cod sursa (job #2195440) | Cod sursa (job #2195480)
#include <fstream>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int T[2][100005],start[50005],d[50005],cnt,x[50005];
void umple(int poz)
{
int i;
for(i=start[poz]; i>0; i=T[1][i])
if(d[T[0][i]]==0)
umple(T[0][i]);
cnt++;
d[poz]=cnt;
}
int main()
{
int k=0,n,m,l,i,j;
in>>n>>m;
for(l=1; l<=m; l++)
{
in>>i>>j;
T[0][++k]=j;
T[1][k]=start[i];
start[i]=k;
}
for(i=1; i<=n; i++)
{
if(d[i]==0)
umple(i);
}
for(i=1;i<=n;i++)
x[n+1-d[i]]=i;
for(i=1;i<=n;i++)
out<<x[i]<<" ";
return 0;
}