Cod sursa(job #600687)

Utilizator crushackPopescu Silviu crushack Data 2 iulie 2011 20:21:51
Problema Mesaj4 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>
#include <vector>
#define NMax 100010
using namespace std;

const char IN[]="mesaj4.in",OUT[]="mesaj4.out";

int N,M;
bool visit[NMax] , visit2[NMax];
vector<int> ad[NMax];

void bfs(int x=1)
{
	visit[x]=true;
	for ( typeof(ad[x].begin()) it=ad[x].begin();it<ad[x].end();++it)
		if (!visit[*it])
		{
			bfs(*it);
			printf("%d %d\n",*it,x);
		}
}

void bfs2(int x=1)
{
	visit2[x]=true;
	for ( typeof(ad[x].begin()) it=ad[x].begin();it<ad[x].end();++it)
		if (!visit2[*it])
		{
			printf("%d %d\n",x,*it);
			bfs2(*it);
		}
}

int main()
{
	int x,y;
	freopen(IN,"r",stdin);
	scanf("%d%d",&N,&M);
	while (M--)
	{
		scanf("%d%d",&x,&y);
		ad[x].push_back(y);
		ad[y].push_back(x);
	}
	fclose(stdin);
	
	freopen(OUT,"w",stdout);
	printf("%d\n",2*N-2);
	bfs();
	bfs2();
	fclose(stdout);
	
	return 0;
}