Pagini recente » Istoria paginii onis-2015/solutii-runda-1 | Statistici Karola (kerry) | Cod sursa (job #2631347) | Diferente pentru preoni-2008/clasament/runda-finala/10 intre reviziile 6 si 2 | Cod sursa (job #1304714)
//horatiu11
# include <cstdio>
# include <vector>
# define nmax 100001
using namespace std;
int n,m,x,y,nr;
bool viz[nmax];
vector <int>G[nmax];
struct muchie{int x,y;}e;
vector <muchie>sol;
void dfs(int x)
{
vector <int>::iterator it;
viz[x]=true;
for(it=G[x].begin();it!=G[x].end();++it)
if(!viz[*it])
{
e.x=x;e.y=*it;++nr;
sol.push_back(e);
dfs(*it);
}
}
int main()
{
int i;
freopen("mesaj4.in","r",stdin);
freopen("mesaj4.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=m;++i)
{
scanf("%d%d",&x,&y);
G[x].push_back(y);
G[y].push_back(x);
}
dfs(1);
if(nr!=n-1)printf("-1\n");
else
{
vector <muchie>::iterator it;
printf("%d\n",2*(n-1));
for(it=sol.begin();it!=sol.end();++it)
printf("%d %d\n",(*it).x,(*it).y);
for(it=sol.end()-1;;--it)
{
printf("%d %d\n",(*it).y,(*it).x);
if(it==sol.begin())break;
}
}
return 0;
}