Pagini recente » Cod sursa (job #1734345) | Cod sursa (job #532228) | Cod sursa (job #2623153) | Cod sursa (job #1079943) | Cod sursa (job #1440493)
#include <iostream>
#include <fstream>
#include <vector>
#define NMax 100005
using namespace std;
vector <int> Graf[NMax];
vector <pair< int,int > > Sol;
bool Uz[NMax];
int N,M,x,y,it;
void Citire()
{
ifstream g("mesaj4.in");
g>>N>>M;
for(int i=1;i<=M;i++)
{
g>>x>>y;
Graf[x].push_back(y);
Graf[y].push_back(x);
}
}
void DFS(int nod)
{
Uz[nod]=1;
for(int i=0;i<Graf[nod].size();i++)
{
int it=Graf[nod][i];
if(Uz[it]==0)
{
DFS(it);
Sol.push_back(make_pair(it,nod));
}
}
}
int main()
{
Citire();
DFS(1);
ofstream f("mesaj4.out");
if(Sol.size()!=N-1)
{
f<<-1<<"\n";
return 0;
}
f<<2*Sol.size()<<"\n";
for(int i=0;i<Sol.size();i++)
f<<Sol[i].first<<' '<<Sol[i].second<<"\n";
for(int i=Sol.size()-1;i>=0;i--)
f<<Sol[i].second<<' '<<Sol[i].first<<"\n";
}