Pagini recente » Istoria paginii runda/cex_ph_3 | Cod sursa (job #1701740) | Cod sursa (job #1663864) | Cod sursa (job #176028) | Cod sursa (job #774556)
Cod sursa(job #774556)
#include<fstream>
using namespace std;
typedef struct celula{
int nod;
struct celula *next;
}*lista;
lista graf[100001];
bool viz[100001];
int solx[200001], soly[200001];
int ok,nr;
void dfs(int nod){
lista p;
p=graf[nod]; viz[nod]=true; ++ok;
for(p=graf[nod];p;p=p->next)
if(viz[p->nod]==false){
dfs(p->nod);
solx[++nr]=nod;
soly[nr]=p->nod;
}
}
int main(void){
ifstream fin("mesaj4.in");
ofstream fout("mesaj4.out");
int i,n,m,x,y;
lista v;
fin>>n>>m;
for (i=1; i<=m; ++i){
fin>>x>>y;
v=new celula; v->nod=y; v->next=graf[x]; graf[x]=v;
v=new celula; v->nod=x; v->next=graf[y]; graf[y]=v;
}
dfs(1);
if (ok!=n) fout<<"-1";
else { fout<<2*n-2<<"\n";
for (i=1; i<n; ++i) fout<<soly[i]<<" "<<solx[i]<<"\n";
for (i=n-1; i>0; --i) fout<<solx[i]<<" "<<soly[i]<<"\n";
}
return(0);
}