Pagini recente » Cod sursa (job #2895635) | Cod sursa (job #3254594) | Cod sursa (job #336813) | Cod sursa (job #1960942) | Cod sursa (job #582297)
Cod sursa(job #582297)
#include <stdio.h>
int n,m,vizitat[50001];
struct rez
{
int nod;
rez *adr_urm;
};
rez *primul_nod[50001],*primul_nodsol;
void adaugasol(int n)
{
rez *tmp=new rez;
tmp->adr_urm=NULL;
tmp->nod=n;
if(!primul_nodsol)
primul_nodsol=tmp;
else
{
tmp->adr_urm=primul_nodsol;
primul_nodsol=tmp;
}
}
void adauga(int i,int n)
{
rez *tmp=new rez;
tmp->adr_urm=NULL;
tmp->nod=n;
if(!primul_nod[i])
primul_nod[i]=tmp;
else
{
tmp->adr_urm=primul_nod[i];
primul_nod[i]=tmp;
}
}
void afiseaza()
{
FILE *g=fopen("sortaret.out","w");
rez *tmp=primul_nodsol;
while(tmp)
{
fprintf(g,"%d ",tmp->nod);
tmp=tmp->adr_urm;
}
}
void sort(int poz)
{
vizitat[poz]=1;
rez *curs=primul_nod[poz];
while(curs)
{
if(!vizitat[curs->nod])
sort(curs->nod);
curs=curs->adr_urm;
}
adaugasol(poz);
}
int main()
{
FILE *f=fopen("sortaret.in","r");
fscanf(f,"%d %d\n",&n,&m);
int x,y;
for(int i=1;i<=m;i++)
{
fscanf(f,"%d %d\n",&x,&y);
adauga(x,y);
}
for(int i=1;i<=n;i++)
if(!vizitat[i])
sort(i);
afiseaza();
return 0;
}