Pagini recente » Cod sursa (job #523051) | Cod sursa (job #1312262) | Cod sursa (job #1638167) | Cod sursa (job #252758) | Cod sursa (job #717261)
Cod sursa(job #717261)
#include<fstream>
#include<vector>
#include<utility>
#define NN 100001
#define pb push_back
#define mp make_pair
#define ff first
#define ss second
using namespace std;
ofstream out("mesaj4.out");
int n,m,v[NN];
vector<int>G[NN];
vector<pair<int,int> >rez;
void dfs(int ),citire();
int main()
{
citire();
dfs(1);
int pp=1;
for(int i=1;i<=n;i++)
if(!v[i])
pp=0;
if(pp)
{
out<<2*n-2<<'\n';
for(int i=rez.size()-1;i>=0;--i)
out<<rez[i].ss<<" "<<rez[i].ff<<'\n';
for(int i=0;i<rez.size();++i)
out<<rez[i].ff<<" "<<rez[i].ss<<'\n';
}
else
out<<-1;
return 0;
}
void citire()
{
ifstream in("mesaj4.in");
in>>n>>m;
for(int x,y;m;--m)
{
in>>x>>y;
G[x].pb(y);
G[y].pb(x);
}
}
void dfs(int start)
{
v[start]=1;
for(vector<int>::iterator i=G[start].begin();i<G[start].end();++i)
if(!v[*i])
{
rez.pb(mp(start,*i));
dfs(*i);
}
}