Pagini recente » Cod sursa (job #2840117) | Cod sursa (job #2766884) | Cod sursa (job #107286) | Cod sursa (job #410257) | Cod sursa (job #928947)
Cod sursa(job #928947)
#include<iostream>
#include<fstream>
#define MAX 100001
using namespace std;
struct nod{
int data;
nod *next;
};
int viz[MAX],ok=1,v[MAX];
nod *graf[MAX];
ifstream citire("sortaret.in");
ofstream afisare("sortaret.out");
int dfs(int x){
nod *p;
int nr;
viz[x]=1;
p=graf[x]->next;
while(p!=NULL){
if(viz[p->data]==0){
dfs(p->data);
}
p=p->next;
}
v[ok]=x;
ok++;
return 0;
}
int main(){
int noduri,muchii,i,y,x,nr=0;
citire>>noduri>>muchii;
nod *nou;
for(i = 1;i <= noduri; i++)
{
graf[i]=new nod;
graf[i]->next=NULL;
}
for(i = 1 ;i <= muchii ;i++){
citire>>x>>y;
nou=new nod;
nou->data=y;
nou->next=graf[x]->next;
graf[x]->next=nou;
}
for(i = 1; i <= noduri; i++)
// viz[i]=0;
for(i = 1; i <= noduri; i++)
if(viz[i]==0){
nr++;
dfs(i);
}
for(i = ok-1; i >= 1; i--)
afisare<<v[i]<<" ";
return 0;
}