Pagini recente » Cod sursa (job #2281796) | Cod sursa (job #497775) | Cod sursa (job #2219073) | Cod sursa (job #528421) | Cod sursa (job #1770083)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("mesaj4.in");
ofstream fout("mesaj4.out");
int N,M,k;
bool use[100005];
vector <int> P[100005];
struct par{
int f,s;
};
par T[100005];
void read()
{
fin>>N>>M;
for(int i=1;i<=M;i++)
{
int a,b;
fin>>a>>b;
P[a].push_back(b);
P[b].push_back(a);
}
}
void dfs(int nod)
{
use[nod]=1;
for(int i=0;i<P[nod].size();i++)
{
int vecin=P[nod][i];
if(!use[vecin])
{
k++;
T[k].f=nod;
T[k].s=vecin;
dfs(vecin);
}
}
}
void solve()
{
dfs(1);
}
void print()
{
if(k==N-1)
{
fout<<(N-1)*2;
for(int i=k;i>=1;i--)
{
fout<<"\n"<<T[i].s<<" "<<T[i].f;
}
for(int i=1;i<=k;i++)
{
fout<<"\n"<<T[i].f<<" "<<T[i].s;
}
}
else
fout<<"-1";
}
int main()
{
read();
solve();
print();
return 0;
}