Pagini recente » Cod sursa (job #3140632) | Cod sursa (job #676632) | Cod sursa (job #1941953) | Cod sursa (job #2067425) | Cod sursa (job #1265907)
# include <bits/stdc++.h>
# define pb push_back
# define x first
# define y second
using namespace std;
ifstream fi("mesaj4.in");
ofstream fo("mesaj4.out");
typedef struct node
{
int x;
node *next;
node()
{
x=0;next=0;
}
} *nod;
const int nmax = 1e5 + 5;
nod s[nmax];
bitset <nmax> b;
vector < pair < int , int > > v;
void dfs(int lnod)
{
b[lnod]=1;
for (nod p=s[lnod];p;p=p->next)
if (!b[p->x])
{
v.pb(make_pair(lnod,p->x));
dfs(p->x);
}
}
void add(int x,int y)
{
nod p=new node;
p->x=y;
p->next=s[x];
s[x]=p;
}
int main(void)
{
int n,m,x,y;
fi>>n>>m;
while (m--) fi>>x>>y,add(x,y),add(y,x);
dfs(1);
for (int i=1;i<=n;++i) if (!b[i]) return fo << "-1\n",0;
fo << (int)(v.size()) << '\n';
for (int i=0,l=v.size();i<l;++i) fo << v[i].x << ' ' << v[i].y << '\n';
return 0;
}