Pagini recente » Cod sursa (job #1701239) | Cod sursa (job #869321) | Cod sursa (job #824097) | Cod sursa (job #462568) | Cod sursa (job #1303453)
#include <fstream>
#include <vector>
#define lmax 100005
#define pb push_back
#define mp make_pair
using namespace std;
ifstream f("mesaj4.in");
ofstream g("mesaj4.out");
int n,m,i,nr,x,y;
bool ap[lmax];
vector <int>v[lmax];
vector <pair<int,int> >sol;
vector <int>::iterator it;
inline void df(int nod)
{
ap[nod]=1;
nr++;
for (vector <int>::iterator it=v[nod].begin();it!=v[nod].end();it++)
if (!ap[*it])
{
sol.pb(mp(*it,nod));
df(*it);
}
}
int main()
{
f>>n>>m;
for (i=1;i<=m;i++)
{
f>>x>>y;
v[x].pb(y);
v[y].pb(x);
}
df(1);
if (nr==n)
{
g<<2*n-2<<'\n';
for (i=0;i<n-1;i++)
g<<sol[i].first<<" "<<sol[i].second<<'\n';
for (i=n-2;i>=0;i--)
g<<sol[i].second<<" "<<sol[i].first<<'\n';
}
else
g<<-1;
f.close();
g.close();
}