Pagini recente » Cod sursa (job #2450679) | Cod sursa (job #2277796) | Cod sursa (job #753388) | Cod sursa (job #644597) | Cod sursa (job #1740107)
#include<stdio.h>
using namespace std;
FILE *f1=fopen("sortaret.in","r");
FILE *f2=fopen("sortaret.out","w");
int n,m,v[50001];
struct nod{
int inf;
nod *urm;
}*L[50001],*sol;
void adaugsf(int val,nod *&vf){
nod *q;
q=new nod;
q->inf=val;
q->urm=vf;
vf=q;
}
void cit(){
fscanf(f1,"%d%d",&n,&m);
int i,a,b;
for (i=1;i<=m;i++){
fscanf(f1,"%d%d",&a,&b);
adaugsf(b,L[a]);
}
fclose(f1);
}
void DFS(int k){
v[k]=1;
nod *q;
q=L[k];
while(q!=0){
if (v[q->inf]==0) DFS(q->inf);
q=q->urm;
}
adaugsf(k,sol);
}
int main(){
cit();
int i;
nod *q;
for (i=1;i<=n;i++)
if (v[i]==0)
DFS(i);
q=sol;
while(q!=0){
fprintf(f2,"%d ",q->inf);
q=q->urm;
}
fclose(f2);
return 0;
}