Pagini recente » Cod sursa (job #376353) | Cod sursa (job #1454115) | Cod sursa (job #1662494) | Cod sursa (job #1994233) | Cod sursa (job #2401726)
#include<fstream>
#include<vector>
using namespace std;
int n, m, nr;
vector<int>tr[100002];
vector<pair<int, int> >ans1;
bool viz[100002];
void dfs(int dad, int nod)
{
viz[nod] = 1;
for(int i = 0; i < tr[nod].size(); ++i)
{
int vecin = tr[nod][i];
if(viz[vecin])
continue;
dfs(nod, vecin);
ans1.push_back({vecin, nod});
}
}
int main()
{
ifstream f("mesaj4.in");
f >> n >> m;
for(int i = 1; i <= m; ++i)
{
int a, b;
f >> a >> b;
tr[a].push_back(b);
tr[b].push_back(a);
}
dfs(0, 1);
ofstream g("mesaj4.out");
if(ans1.size() != n-1)
{
g << -1;
return 0;
}
g << 2 * (n-1) << '\n';
for(int i = 0; i <= n-2; ++i)
g << ans1[i].first << " " << ans1[i].second << '\n';
for(int i = n - 2; i >= 0; --i)
g << ans1[i].second << " " << ans1[i].first << '\n';
return 0;
}