Pagini recente » Cod sursa (job #1795753) | Cod sursa (job #310381) | Cod sursa (job #2089308) | Cod sursa (job #1980586) | Cod sursa (job #465472)
Cod sursa(job #465472)
#include <fstream>
#include <vector>
using namespace std;
const int MAXN = 2010;
int N, M;
char A[MAXN][MAXN];
int u[MAXN];
vector < pair <int, int> > Sol;
void DFS(int nod, int root) {
u[nod] = 1;
for (int i = 1; i <= N; ++i)
if (!u[i] && A[nod][i]) {
DFS(i, nod);
Sol.push_back(make_pair(nod, i));
}
}
int main() {
ifstream fin("mesaj4.in");
ofstream fout("mesaj4.out");
fin >> N >> M;
for (int i = 1; i <= M; ++i) {
int x, y;
fin >> x >> y;
A[x][y] = A[y][x] = 1;
}
DFS(1, -1);
if ((int) Sol.size() != N-1) {
fout << -1 << endl;
} else {
fout << 2*N - 2 << '\n';
for (int i = 0; i < N-1; ++i)
fout << Sol[i].second << " " << Sol[i].first << '\n';
for (int i = N-2; i >= 0; --i)
fout << Sol[i].first << " " << Sol[i].second << '\n';
}
return 0;
}