Cod sursa(job #467812)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 30 iunie 2010 18:33:07
Problema Mesaj4 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb

#include <stdio.h>
#include <vector>

using namespace std;

FILE *f,*s;

int m,n,x,y,v2[100005],v3[100005],v4[100005];

vector<int> v1[100005];

void DFS(int x)
{
    int i;

	for(i=0;i<v1[x].size();++i)
	{
		if(!v2[v1[x][i]])
		{
			v2[v1[x][i]]=1;

			y++;

			v3[y]=x;
			v4[y]=v1[x][i];

			DFS(v1[x][i]);

		}
	}
}

int main()
{
	f=fopen("mesaj4.in","r");
	s=fopen("mesaj4.out","w");

	fscanf(f,"%d %d",&m,&n);

	for(int i=1;i<=n;++i)
	{
		fscanf(f,"%d %d",&x,&y);

		v1[x].push_back(y);
		v1[y].push_back(x);
	}

	y=0;

	v2[1]=1;

	DFS(1);

	if(y==m-1)
    {
        fprintf(s,"%d\n",2*n-2);

        int i=0;

        for(i=y;i>=1;i++)
            fprintf(s,"%d %d\n",v4[i],v3[i]);

        for(i=1;i<=y;i++)
            fprintf(s,"%d %d\n",v3[i],v4[i]);
    }
    else
        fprintf(s,"-1\n");


	fclose(s);

	return 0;
}