Pagini recente » Cod sursa (job #371319) | Cod sursa (job #1434027) | Cod sursa (job #1968080) | Cod sursa (job #735533) | Cod sursa (job #952628)
Cod sursa(job #952628)
#include<stdio.h>
#include<stdlib.h>
using namespace std;
long N,M,viz[50000];
struct nod {
int vf;
nod * next;
} *vecini[50000],*adresa;
void df(int nd)
{
viz[nd] = -1;
for (nod * p = vecini[nd]; p; p = p->next )
if (viz[p->vf] == 0)
df(p->vf);
viz[nd] = -2;
nod * p = new nod;
p->vf = nd;
p->next = adresa;
adresa = p;
}
int main()
{
FILE *in,*out;
in = fopen("sortaret.in","r");
out = fopen("sortaret.out","w");
fscanf(in, "%ld%ld", &N, &M );
int x,y;
for ( ; M > 0; M-- ) {
fscanf(in, "%d%d", &x, &y);
nod *p = new nod;
p->vf = y;
p->next = vecini[x];
vecini[x] = p;
}
for (long i = 1; i <= N; i++)
if (viz[i] == 0)
df(i);
for (nod * p = adresa; p; p = p->next )
fprintf(out, "%d ", p->vf );
fclose(in);
fclose(out);
return 0;
}