Pagini recente » Cod sursa (job #1389488) | Cod sursa (job #827369) | Cod sursa (job #548439) | Cod sursa (job #1747339) | Cod sursa (job #467812)
Cod sursa(job #467812)
#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;
}