Pagini recente » Cod sursa (job #2494184) | Cod sursa (job #858182) | Cod sursa (job #2057721) | Cod sursa (job #2340827) | Cod sursa (job #1341339)
#include <iostream>
# include <fstream>
# include <vector>
# define NMAX 100001
using namespace std;
vector <int> G[NMAX];
ifstream f ("mesaj4.in");
ofstream g ("mesaj4.out");
vector < pair <int, int> > sol;
ifstream fin("mesaj4.in");
ofstream fout("mesaj4.out");
int use[NMAX];
int time;
int n,m;
void read()
{
int i,x,y;
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>x>>y;
G[x].push_back(y);
G[y].push_back(x);
}
}
void DFS(int nod)
{
time++;
use[nod]=1;
for(unsigned i=0;i<G[nod].size();i++)
if(!use[G[nod][i]])
{
sol.push_back(make_pair(nod,G[nod][i]));
DFS(G[nod][i]);
}
}
void write()
{
if(time<n) fout<<-1;
else
{
fout<<2*(n-1)<<"\n";
for(unsigned i=0;i<sol.size();i++)
fout<<sol[i].first<<" "<<sol[i].second<<"\n";
for(unsigned i=0;i<sol.size();i++) //?
fout<<sol[i].second<<" "<<sol[i].first<<"\n";
}
}
int main()
{
read();
DFS(1);
write();
return 0;
}