Pagini recente » Cod sursa (job #411838) | Cod sursa (job #1998114) | Cod sursa (job #1792738) | Cod sursa (job #828853) | Cod sursa (job #217419)
Cod sursa(job #217419)
#include<stdio.h>
#define max 100000
long n, m, i, p, u, x, y, nr;
char uz[max];
struct elem
{ long inf;
elem *urm;
};
elem *a[max], *q;
FILE *f, *g;
int verif(long & i)
{ for(i=1; i<=n; i++)
{ if(uz[i]==0)
{ uz[i]=1;
return 1;
}
}
return 0;
}
void writel(elem *prim)
{ for(elem *p=prim; p; p=p->urm)
{ fprintf(g, "%ld ", p->inf);
}
}
int main()
{ long d[100000];
f=fopen("dfs.in", "r");
g=fopen("dfs.out", "w");
fscanf(f, "%ld%ld", &n, &m);
for(i=0; i<m; i++)
{ fscanf(f, "%ld%ld", &x, &y);
q=new elem;
q->inf=x;
q->urm=a[y];
a[y]=q;
q=new elem;
q->inf=y;
q->urm=a[x];
a[x]=q;
}
/*
for(i=1; i<=n; i++)
{ writel(a[i]);
fprintf(g, "\n");
}
*/
while(verif(d[1]))
{ p=1; u=1;
while(p<=u)
{ for(q=a[d[p]]; q!=NULL; q=q->urm)
{ if(uz[q->inf]==0)
{ u++;
d[u]=q->inf;
uz[q->inf]=1;
}
}
p++;
}
nr++;
}
fprintf(g, "%ld", nr);
return 0;
}