Pagini recente » Cod sursa (job #1304773) | Cod sursa (job #785983) | Cod sursa (job #3314) | Cod sursa (job #172556) | Cod sursa (job #2005637)
#include<cstdio>
#include<vector>
using namespace std;
const int nmax=1e5+5;
vector<int> g[nmax];
bool viz[nmax];
typedef pair<int,int> ii;
vector<ii> vi;
int n,m;
inline void dfs(int node)
{
viz[node]=1;
int i,currnode;
for(i=0;i<g[node].size();++i)
{
currnode=g[node][i];
if(!viz[currnode])
{
vi.push_back(ii(node,currnode));
dfs(currnode);
}
}
}
int main()
{
freopen("mesaj4.in","r",stdin);
freopen("mesaj4.out","w",stdout);
int i;
scanf("%d%d",&n,&m);
for(i=1;i<=m;++i)
{
int x,y;
scanf("%d%d",&x,&y);
g[x].push_back(y);
g[y].push_back(x);
}
dfs(1);
if(vi.size()< n-1)
{
printf("-1");
return 0;
}
printf("%d\n",((n-1)<<1));
for(i=n-2;i>=0;--i)
printf("%d %d\n",vi[i].second,vi[i].first);
for(i=0;i<n-1;++i)
printf("%d %d\n",vi[i].first,vi[i].second);
}