Pagini recente » Cod sursa (job #725269) | Cod sursa (job #983271) | Cod sursa (job #2646174) | Cod sursa (job #2062607) | Cod sursa (job #595795)
Cod sursa(job #595795)
# include <fstream>
# include <vector>
# define NMAX 100001
using namespace std;
vector <int> list[NMAX];
int n, m, x, y, i, ap[NMAX], lung;
pair <int, int> sol[NMAX];
ifstream f ("mesaj4.in");
ofstream g ("mesaj4.out");
void dfs (int nod)
{
int siz = list[nod].size ();
ap[nod] = 1;
for (int i = 0; i < siz; ++i)
{
int val = list[nod][i];
if (!ap[val])
{
sol[++lung].first = nod;
sol[lung].second = val;
dfs (val);
}
}
}
int main ()
{
int i, x, y;
f >> n >> m;//scanf ("%d %d", &n, &m);
for (i = 1; i <= m; i++) {
f >> x >> y;//scanf ("%d %d", &x, &y);
list[x].push_back (y);
list[y].push_back (x);
}
dfs (1);
for (i = 1; i <= n; ++i)
if (!ap[i])
{
g << "-1\n";
return 0;
}
g << (n << 1) - 2 << '\n';
for (i = lung; i >= 1; --i)
g << sol[i].second << ' ' << sol[i].first << '\n';
for (i = 1; i <= lung; ++i)
g << sol[i].first << ' ' << sol[i].second << '\n';
g.close ();
return 0;
}