Pagini recente » Cod sursa (job #472973) | Cod sursa (job #1887155) | Cod sursa (job #1228226) | Cod sursa (job #1513899) | Cod sursa (job #1324372)
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;
//mai treb "ordonate", si verificare la afizarea finala
struct nod{int info;
nod *next;};
nod *p[50020],*u[50020];
int cd[50500],viz[50500],n,m;
int main()
{int x,y,i,val=0;
nod *q;
ifstream f("sortaret.in");
FILE *g;
g=fopen("sortaret.out","w");
f>>n>>m;
for(i=1;i<=m;i++)
{
f>>x>>y;
q=new nod;
q->info=y;
//if(viz[y]==0)
{viz[y]=1;
if(p[x]==NULL)
{p[x]=q;
p[x]->next=0;
u[x]=p[x];
}
else
{u[x]->next=q;
u[x]=q;
u[x]->next=0;
}
viz[x]++;
viz[y]++;
}
}
for(i=n;i>=1;i--)
{
if(p[i]==NULL)
{
if(viz[i]==0)
{cd[++val]=i;
viz[i]=-1;}
}
else
{nod *r=p[i];
while(r!=0)
{if(viz[r->info]!=-1)
{cd[++val]=r->info;
viz[r->info]=-1;}
r=r->next;
}
if(viz[i]!=-1)
{cd[++val]=i;
viz[i]=-1;}
}
}
//afis----------------------------------------------
for(i=val;i>=1;i--)
fprintf(g,"%d ",cd[i]);
return 0;
}