Pagini recente » Cod sursa (job #2952553) | Cod sursa (job #1328082) | Cod sursa (job #1310880) | Cod sursa (job #247612) | Cod sursa (job #2024485)
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
vector <int> v[100001];
int f[100001];
pair <int,int> sol[100001];
int etp=0;
void dfs (int x){
int i,vecin;
f[x]=1;
for (i=0;i<v[x].size();i++){
vecin=v[x][i];
if (f[vecin]==0){
dfs(vecin);
etp++;
sol[etp].first=vecin;
sol[etp].second=x;
}
}
}
int main()
{
FILE *fin=fopen ("mesaj4.in","r");
FILE *fout=fopen ("mesaj4.out","w");
int n,m,i,x,y;
fscanf (fin,"%d%d",&n,&m);
for (i=1;i<=m;i++){
fscanf (fin,"%d%d",&x,&y);
v[x].push_back(y);
v[y].push_back(x);
}
dfs (1);
for (i=1;i<=n;i++)
if (f[i]==0){
fprintf (fout,"-1");
return 0;
}
fprintf (fout,"%d\n",2*etp);
for (i=1;i<=etp;i++)
fprintf (fout,"%d %d\n",sol[i].first,sol[i].second);
for (i=etp;i>0;i--)
fprintf (fout,"%d %d\n",sol[i].second,sol[i].first);
return 0;
}