Pagini recente » Cod sursa (job #728978) | Cod sursa (job #2215099) | Cod sursa (job #326818) | Cod sursa (job #398679) | Cod sursa (job #774526)
Cod sursa(job #774526)
#include<fstream>
using namespace std;
typedef struct lnod{
int vf;
struct lnod *next;
}*Nod;
Nod a[100005];
bool viz[100005];
int N,M,nr,x[100005],y[100005];
void add(int x,int y){
Nod p=new lnod;
p->vf=y;
p->next=a[x];
a[x]=p;
}
void readdata(){
ifstream fin("mesaj4.in");
int i,x,y;
fin>>N>>M;
for(i=1;i<=M;++i){
fin>>x>>y;
add(x,y);
add(y,x);
}
}
void writedata(){
ofstream fout("mesaj4.out");
int i;
for(i=1;i<=N;++i)
if(!viz[i])
{
fout<<"0\n";
return ;
}
fout<<2*nr<<'\n';
for(i=nr;i>0;--i)fout<<x[i]<<' '<<y[i]<<'\n';
for(i=1;i<=nr;++i)fout<<x[i]<<' '<<y[i]<<'\n';
}
void dfs(int nod){
viz[nod]=1;
for(Nod p=a[nod];p;p=p->next)
if(!viz[p->vf])
{
x[++nr]=nod;
y[nr]=p->vf;
dfs(p->vf);
}
}
int main(void){
readdata();
dfs(1);
writedata();
return 0;
}