Pagini recente » Cod sursa (job #2477588) | Cod sursa (job #1531864) | Cod sursa (job #1367349) | Cod sursa (job #1485710) | Cod sursa (job #1453747)
#include <iostream>
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;
ifstream fin("mesaj4.in");
ofstream fout("mesaj4.out");
vector<vector<int>> G;
vector<pair<int, int >> s;
vector<bool> b;
int n, m;
void Read();
void Dfs(int x);
void Write();
int main()
{
Read();
Dfs(1);
Write();
fin.close();
fout.close();
return 0;
}
void Read()
{
fin >> n >> m;
int x, y;
G = vector<vector<int>>(n + 1, vector<int>());
b = vector<bool>(n + 1, 0);
for ( int i = 1; i <= m; i++ )
{
fin >> x >> y;
G[x].push_back(y);
G[y].push_back(x);
}
}
void Dfs(int x)
{
b[x]=1;
for ( auto y : G[x] )
{
if ( !b[y] )
{
Dfs(y);
s.push_back({y, x});
}
}
}
void Write()
{
if ( s.size() != n - 1 )
{
fout << -1;
return;
}
fout << 2 * s.size() << "\n";
for ( auto y : s )
fout << y.first << ' ' << y.second<< "\n";
for (vector<pair<int, int>>::iterator it = s.end() - 1; it >= s.begin(); --it )
fout << it->second << ' ' << it->first << "\n";
}