Pagini recente » Monitorul de evaluare | Diferente pentru preoni-2008/runda-1/solutii intre reviziile 27 si 26 | Cod sursa (job #274966) | Profil diannneee | Cod sursa (job #364879)
Cod sursa(job #364879)
#include<iostream>
using namespace std;
//definim clasa nod
class nod
{
public:
int nr;
int noduri;
nod *urmator;
nod *ultim;
nod(void):nr(0),noduri(0),urmator(NULL),ultim(NULL){};
};
//definim lista
nod v[50001];
int folosit[50001];
int coada[50001];
int poz=1;
void introducere(int p)
{
if(folosit[p]==0)
{
folosit[p]=1;
coada[poz]=p; poz++;
int aux;
nod *s=v[p].urmator;
for(aux=1; aux<=v[p].noduri; aux++)
{
if(folosit[s->nr]==0)introducere(s->nr);
s=s->urmator;
}
}
}
int main(void)
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
int n,m,i,x,y;
cin>>n>>m;
//creem vectorul cu listele de noduri
for(i=1; i<=m; i++)
{
cin>>x>>y;
if(v[x].noduri==0)
{
nod *var=new nod;
var->nr=y;
var->urmator=NULL;
v[x].noduri=1;
v[x].urmator=var;
v[x].ultim=v[x].urmator;
}
else
{
nod *var=new nod;
var->nr=y;
var->urmator=NULL;
v[x].ultim->urmator=var;
v[x].ultim=var;
v[x].noduri++;
}
}
introducere(1);
for(i=1; i<poz; i++)cout<<coada[i]<<" ";
return 0;
}