Pagini recente » Cod sursa (job #1451551) | Cod sursa (job #1630558) | Cod sursa (job #762261) | Cod sursa (job #591756) | Cod sursa (job #1645121)
#include<fstream>
#include<bitset>
#include<algorithm>
#include<vector>
using namespace std;
ifstream in("mesaj4.in");
ofstream out("mesaj4.out");
bitset<100010> v;
vector<int> L[100010];
int N, M,nr;
pair<int, int> v1[100010];
void DFS(int x)
{
v[x] = 1;
for (int i = 0;i < L[x].size();++i)
if (v[L[x][i]] == 0)
{
DFS(L[x][i]);
++nr;
v1[nr] = make_pair(x, L[x][i]);
}
}
int main()
{
in >> N >> M;
for (int i = 1;i <= M;++i)
{
int x, y;
in >> x >> y;
L[x].push_back(y);
L[y].push_back(x);
}
DFS(1);
if (nr != N - 1)
{
out << -1;
return 0;
}
out << nr*2 << '\n';
for (int i = 1;i <= nr;++i)
out << v1[i].second << " " << v1[i].first<<'\n';
for (int i = nr;i >=1 ;--i)
out << v1[i].first<< " " << v1[i].second <<'\n';
}