Pagini recente » Cod sursa (job #1571031) | Cod sursa (job #521121) | Cod sursa (job #365048) | Cod sursa (job #1633896) | Cod sursa (job #478828)
Cod sursa(job #478828)
#include <cstdio>
#include <vector>
#include <algorithm>
#include <utility>
#include <bitset>
using namespace std;
FILE* fin = fopen("mesaj4.in", "r");
FILE* fout = fopen("mesaj4.out", "w");
#define MAXN 100005
vector<int> g[MAXN];
vector<pair<int, int> > sol;
bitset<MAXN> viz;
typedef vector<int>::iterator iter;
typedef vector<pair<int, int> >::iterator piter;
void dfs(int nod){
if(viz[nod])
return;
viz[nod] = true;
for(iter it = g[nod].begin(); it != g[nod].end(); ++it){
if(!viz[*it]){
sol.push_back(make_pair(*it, nod));
dfs(*it);
}
}
}
int main(){
int n, m;
fscanf(fin, "%d %d", &n, &m);
for(int i = 0, x, y; i < m; ++i){
fscanf(fin, "%d %d\n", &x, &y);
g[x].push_back(y);
g[y].push_back(x);
}
dfs(1);
fprintf(fout, "%d\n", sol.size() * 2);
for(piter it = sol.end(); it != sol.begin(); --it){
fprintf(fout, "%d %d\n", it->first, it->second);
}
for(piter it = sol.begin(); it != sol.end() ; ++it){
fprintf(fout, "%d %d\n", it->second, it->first);
}
fclose(fin);
fclose(fout);
return EXIT_SUCCESS;
}