Pagini recente » Cod sursa (job #2244630) | Cod sursa (job #151323) | Cod sursa (job #2209901) | Cod sursa (job #872911) | Cod sursa (job #2753202)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("mesaj4.in");
ofstream g("mesaj4.out");
int n,m,x,y;
bool marker[1005];
vector <pair<int, int> > sol;
vector <int> v[1005];
void dfs(int x)
{
marker[x]=1;
for(int k=0; k<v[x].size(); k++)
{
if(!marker[v[x][k]])
{
sol.push_back(make_pair(v[x][k], x));
dfs(v[x][k]);
}
}
}
int main()
{
f>>n>>m;
for(int i=1; i<=m; i++)
{
f>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
dfs(1);
bool ok=true;
for(int i=1; i<=n; i++)
{
if(!marker[i])
{
ok=false;
break;
}
}
if(!ok)g<<"-1\n";
else
{
g<<2*n-2<<'\n';
for(int i=n-2; i>=0; i--)
{
g<<sol[i].first<<" "<<sol[i].second<<'\n';
}
for(int i=0; i<n-1; i++)
{
g<<sol[i].second<<" "<<sol[i].first<<'\n';
}
}
return 0;
}