Pagini recente » Cod sursa (job #2424870) | Cod sursa (job #2424742) | Cod sursa (job #2938188) | Cod sursa (job #176419) | Cod sursa (job #1235652)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("mesaj4.in");
ofstream fout("mesaj4.out");
const int MAXN = 100005;
int N, M, A[MAXN], B[MAXN], cnt;
vector <int> G[MAXN];
bool Used[MAXN];
void DFS(int node)
{
Used[node] = 1;
for (vector <int> :: iterator it = G[node].begin(); it != G[node].end(); ++it)
{
int vecin = *it;
if (!Used[vecin])
{
++cnt;
A[cnt] = node;
B[cnt] = vecin;
DFS(vecin);
}
}
}
int main()
{
fin >> N >> M;
for (int i = 1; i <= M; ++i)
{
int a, b;
fin >> a >> b;
G[a].push_back(b);
G[b].push_back(a);
}
DFS(1);
if (cnt + 1 != N)
{
fout << -1 << '\n';
return 0;
}
fout << N + N - 2 << '\n';
for (int i = N - 1; i >= 1; --i)
fout << B[i] << " " << A[i] << '\n';
for (int i = 1; i < N; ++i)
fout << A[i] << " " << B[i] << '\n';
fin.close();
fout.close();
return 0;
}