Pagini recente » Cod sursa (job #1911630) | Cod sursa (job #2847414) | Cod sursa (job #317772) | Cod sursa (job #272529) | Cod sursa (job #508419)
Cod sursa(job #508419)
# include <fstream>
# include <iostream>
# include <vector>
# include <algorithm>
# include <queue>
# define DIM 100003
# define pb push_back
using namespace std;
int n, m, v[DIM], T, x[2*DIM], y[2*DIM];
vector<int>G[DIM];
queue<int>Q;
void read ()
{
ifstream fin ("mesaj4.in");
fin>>n>>m;
int x, y;
for(int i=1;i<=m;++i)
{
fin>>x>>y;
G[x].pb(y);
G[y].pb(x);
}
}
void BF (int start)
{
int k;
v[start]=1;
Q.push(start);
while (Q.size())
{
k=Q.front();Q.pop();
for(vector<int>::iterator I=G[k].begin();I<G[k].end();++I)
if (!v[*I])
{
x[++T]=*I;y[T]=k;
Q.push(*I);
v[*I]=1;
}
}
}
void DF (int k)
{
v[k]=1;
for(vector<int>::iterator I=G[k].begin();I<G[k].end();++I)
if (!v[*I])
{
x[++T]=k;y[T]=*I;
v[*I]=1;
DF(*I);
}
}
int main()
{
freopen("mesaj4.out", "w", stdout);
read ();
DF(n);
printf("%d\n", 2*T);
for(int i=T;i;--i)
printf("%d %d\n", y[i], x[i]);
for(int i=1;i<=T;++i)
printf("%d %d\n", x[i], y[i]);
return 0;
}