Pagini recente » Istoria paginii utilizator/calin2014calculatoristul | Istoria paginii utilizator/vladdumitrascu | Istoria paginii utilizator/fumy | Profil NuPrivi | Cod sursa (job #1303463)
#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])
{
df(*it);
sol.pb(mp(*it,nod));
}
}
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<sol.size();i++)
g<<sol[i].first<<" "<<sol[i].second<<'\n';
for (i=sol.size()-1;i>=0;i--)
g<<sol[i].second<<" "<<sol[i].first<<'\n';
}
else
g<<-1;
f.close();
g.close();
}