Pagini recente » Cod sursa (job #2452550) | Cod sursa (job #1581724) | Cod sursa (job #1679249) | Cod sursa (job #3179440) | Cod sursa (job #217420)
Cod sursa(job #217420)
#include<stdio.h>
#define max 100010
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;
long 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[max];
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;
}