Pagini recente » Cod sursa (job #1747819) | Cod sursa (job #1541044) | Cod sursa (job #2582268) | Cod sursa (job #51880) | Cod sursa (job #528739)
Cod sursa(job #528739)
#include<fstream>
#include<vector>
const int maxn = 100005;
using namespace std;
ifstream fin("mesaj4.in");
ofstream fout("mesaj4.out");
int n , m , a , b , i;
vector <int> G[maxn];
vector < pair <int ,int > > sol;
bool seen[maxn];
void DFS(int node) {
int i;
seen[node] = true;
for( i = 0 ; i < G[node].size() ; ++i )
if (!seen[G[node][i]] ) {
DFS(G[node][i]);
sol.push_back(make_pair( node , G[node][i]));
}
}
int main()
{
fin >> n >> m;
for( i = 1 ; i <= m ; ++i )
fin >> a >> b ,
G[a].push_back(b),
G[b].push_back(a);
DFS(1);
for ( i = 1 ; i <= n ; ++i )
if (! seen[i] ) {
fout <<"-1\n";
return 0;
}
fout << 2 * (n - 1) <<"\n";
for( i = 0 ; i < sol.size() ; ++i )
fout <<sol[i].second <<" " << sol[i].first<<"\n";
for( i = sol.size() - 1 ; i >= 0 ; --i )
fout <<sol[i].first <<" "<<sol[i].second <<"\n";
return 0;
}