Pagini recente » Cod sursa (job #2527721) | Cod sursa (job #2532659) | Cod sursa (job #3245258) | Cod sursa (job #2930240) | Cod sursa (job #1246881)
#include <fstream>
#include <vector>
#define NMax 100005
using namespace std;
ifstream fin("mesaj4.in");
ofstream fout("mesaj4.out");
int N,M,TT[NMax],Use[NMax],Ok;
vector <int> G[NMax];
void Read()
{
fin>>N>>M;
for(int i=1;i<=M;i++)
{
int x,y;
fin>>x>>y;
G[x].push_back(y);
G[y].push_back(x);
}
}
void DFS(int node)
{
Use[node]=1;
for(unsigned int i=0;i<G[node].size();i++)
{
int vecin=G[node][i];
if(!Use[vecin])
{
TT[vecin]=node;
DFS(vecin);
}
}
}
void Solve()
{
DFS(1);
Ok=1;
for(int i=1;i<=N;i++)
if(!Use[i])
Ok=0;
}
void Print()
{
if(!Ok)
{
fout<<"-1\n";
return;
}
fout<<2*(N-1)<<"\n";
for(int i=2;i<=N;i++)
fout<<TT[i]<<" "<<i<<"\n";
for(int i=2;i<=N;i++)
fout<<i<<" "<<TT[i]<<"\n";
}
int main()
{
Read();
Solve();
Print();
return 0;
}