Pagini recente » Cod sursa (job #874452) | Cod sursa (job #1960249) | Cod sursa (job #1947919) | Cod sursa (job #1220998) | Cod sursa (job #2660222)
#include <fstream>
#include <vector>
#include <stack>
std::ifstream fin("mesaj4.in");
std::ofstream fout("mesaj4.out");
bool use[100002];
int n,m;
std::stack<std::pair<int,int>> sol;
std::vector<std::vector<int>> v;
void dfs(int nod)
{
use[nod]=1;
for(int i=0; i<(int)v[nod].size(); i++)
if(!use[v[nod][i]])
{
dfs(v[nod][i]);
fout<<v[nod][i]<<" "<<nod<<"\n";
sol.push(std::make_pair(nod,v[nod][i]));
}
}
int main()
{
fin>>n>>m;
v.resize(n+2);
for(int i=0; i<m; i++)
{
int x,y;
fin>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
fout<<2*n-2<<"\n";
dfs(1);
for(int i=1; i<=n; i++)
if(!use[i])
{
fout.close();
std::ofstream fout("mesaj4.out");
fout<<"-1\n";
return 0;
}
while(!sol.empty())
{
fout<<sol.top().first<<" "<<sol.top().second<<"\n";
sol.pop();
}
return 0;
}