Pagini recente » Cod sursa (job #1180689) | Cod sursa (job #3249928) | Cod sursa (job #268581) | Cod sursa (job #1553130) | Cod sursa (job #1105353)
#include<stdio.h>
#include<vector>
using namespace std;
FILE *in,*out;
//functii
void dfs(int node);
//constante
const int Nmax=(int) 5e4+1;
//definitii
#define pb push_back
//variabile
int noduri,muchii,nod1,nod2;
vector<int> graf[Nmax];
vector<int> graft[Nmax];
bool viz[Nmax];
int main(void)
{
in=fopen("sortaret.in","rt");
out=fopen("sortaret.out","wt");
fscanf(in,"%d%d",&noduri,&muchii);
while(muchii--)
{
fscanf(in,"%d%d",&nod1,&nod2);
graf[nod1].pb(nod2);
graft[nod2].pb(nod1);
}
dfs(1);
fclose(in);
fclose(out);
return 0;
}
void dfs(int node)
{
vector<int> :: iterator it,end=graft[node].end(),end2=graf[node].end();
for(it=graft[node].begin() ; it!=end ; ++it)
{
if(!viz[*it])
{
dfs(*it);
}
}
viz[node]=true;
fprintf(out,"%d ",node);
for(it=graf[node].begin() ; it!=end2 ; ++it)
{
if(!viz[*it])
dfs(*it);
}
}