Pagini recente » Cod sursa (job #2648689) | Cod sursa (job #1003655) | Cod sursa (job #179271) | Cod sursa (job #2205007) | Cod sursa (job #1639878)
#include<fstream>
#include<vector>
using namespace std;
vector<int> L[100005];
pair<int, int> drum[100005];
bool u[100005];
int n, m, i, x, y, nd;
void dfs(int nod)
{
for(int i=0; i<L[nod].size(); i++)
{
int vecin=L[nod][i];
if(u[vecin]==0)
{
u[vecin]=1;
dfs(vecin);
drum[++nd].first=nod;
drum[nd].second=vecin;
}
}
}
ifstream in("mesaj4.in");
ofstream out("mesaj4.out");
int main()
{
in>>n>>m;
for(i=1; i<=m; i++)
{
in>>x>>y;
L[x].push_back(y);
L[y].push_back(x);
}
u[1]=1;
dfs(1);
if(nd!=n-1)
{
out<<"-1";
return 0;
}
out<<2*nd<<"\n";
for(i=1; i<=nd; i++)
out<<drum[i].second<<" "<<drum[i].first<<"\n";
for(i=nd; i>=1; i--)
out<<drum[i].first<<" "<<drum[i].second<<"\n";
return 0;
}