Pagini recente » Cod sursa (job #128986) | Cod sursa (job #34593) | Cod sursa (job #2746065) | Cod sursa (job #3256450) | Cod sursa (job #508410)
Cod sursa(job #508410)
#include <cstdio>
#include <vector>
#include <bitset>
using namespace std;
#define DIM 100004
#define pb push_back
#define IT vector<int>::iterator
#define ITT vector<pair<int, int> >::iterator
#define mp make_pair
vector<int>G[DIM];
vector<pair<int, int> >A;
bitset<DIM>v(0);
int n,m;
void citire()
{
FILE *f = fopen("mesaj4.in", "r");
fscanf(f, "%d%d", &n, &m);
for (int i = 1, x, y; i <= m; ++i)
fscanf(f, "%d%d", &x, &y), G[x].pb(y), G[y].pb(x);
fclose(f);
}
void DFS(int i)
{
v[i] = 1;
for (IT it = G[i].begin(); it != G[i].end(); ++it)
if (!v[*it])
A.pb(mp(*it, i)), DFS(*it), A.pb(mp(i, *it));
}
void out()
{
FILE *f = fopen("mesaj4.out", "w");
if ((int)A.size() != 2*(n-1))
fprintf(f, "-1\n");
else
{
fprintf(f, "%d\n", 2*(n-1));
for(ITT it = A.begin(); it != A.end(); ++it)
fprintf(f, "%d %d\n", it->first, it->second);
}
}
int main()
{
citire();
DFS(1);
out();
return 0;
}