Pagini recente » Cod sursa (job #2977774) | Cod sursa (job #63298) | Cod sursa (job #380324) | Cod sursa (job #2703710) | Cod sursa (job #521455)
Cod sursa(job #521455)
#include<stdio.h>
#include<stdlib.h>
#define dim 10005
#define dim2 100005
using namespace std;
int *A[dim],*C[dim],n,m,i,x,y,viz[dim],j,N;
int l[dim2],c[dim2],NR;
void citire()
{
FILE *f=fopen("cuplaj.in","r");
fscanf(f,"%d %d %d",&n,&N,&m);
for(i=0;i<=n;i++)
{
A[i]=(int *) realloc (A[i] , sizeof(int));
A[i][0]=0;
C[i]=(int *) realloc (C[i] , sizeof(int));
C[i][0]=0;
}
for(i=1;i<=m;i++)
{
fscanf(f,"%d %d",&x,&y);
A[x][0]++;
A[x]=(int *)realloc (A[x],(A[x][0]+1) * sizeof(int));
C[x][0]++;
C[x]=(int *)realloc (C[x],(C[x][0]+1) * sizeof(int));
A[x][A[x][0]]=y;
C[x][C[x][0]]=1;
}
fclose(f);
}
void dfs()
{
for(i=1;i<=n;i++)
{
x=i;
for(j=1;j<=A[x][0];j++)
{
y=A[x][j];
if(C[x][j] && !viz[y])
{
NR++;
C[x][j]=0;
l[NR]=x;
c[NR]=y;
viz[y]=1;
}
}
}
}
int main()
{
FILE *g=fopen("cuplaj.out","w");
citire();
dfs();
fprintf(g,"%d\n",NR);
for(i=1;i<=NR;i++)
fprintf(g,"%d %d\n",l[i],c[i]);
fclose(g);
return 0;
}