Pagini recente » Clasamentul arhivei de probleme | Monitorul de evaluare | Clasamentul arhivei de probleme | Monitorul de evaluare | Cod sursa (job #455776)
Cod sursa(job #455776)
#include<fstream>
using namespace std;
typedef struct celula{
int info;
struct celula *urm;
} cel,*lista;
lista l,fii[50000];
long viz[50000];
void dfs(long q){
lista w,p;
viz[q]=1;
p=fii[q];
while (p){
if (viz[p->info]==0) dfs(p->info);
p=p->urm;
}
w = new cel;
w->info=q;
w->urm=l;
l=w;
}
int main(){
ifstream fin;
ofstream fout;
fin.open("sortaret.in");
fout.open("sortaret.out");
long n,m,x,y,i;
fin >> n >> m;
for (int i=1; i<=n; i++){
fii[i]=0;
viz[i]=0;
}
for (; m; --m){
fin >> x >> y;
l = new cel;
l->info = y;
l->urm = fii[x];
fii[x] = l;
}
l=0;
for (i=1; i<=n; i++){
if (viz[i]==0) dfs(i);
}
while (l){
fout << l->info << " ";
l=l->urm;
}
fout << endl;
return 0;
}