Pagini recente » Istoria paginii runda/justsimulare | Cod sursa (job #1038749) | Cod sursa (job #2912259) | Cod sursa (job #2808976) | Cod sursa (job #651108)
Cod sursa(job #651108)
#include <stdio.h>
FILE *f=fopen("parc.in", "r");
FILE *g=fopen("parc.out", "w");
typedef struct nod {int inf;
nod *next;} nod;
nod *first[100];
int n,j, viz[100];
void adauga(int a, int b)
{nod *p;
p=new nod;
p->inf=b;
p->next=first[a];
first[a]=p;
p=new nod;
p->inf=a;
p->next=first[b];
first[b]=p;}
void DFS(int a)
{nod *r;
viz[a]=j;
for(r=first[a];r;r=r->next)
if(viz[r->inf]==0)
DFS(r->inf);
}
void cit()
{int a,b,c;
fscanf(f, "%d%d", &n, &c);
do
{fscanf(f, "%d%d", &a, &b);
adauga(a,b);}
while(c=c-1);}
void fct()
{int contor;
for(contor=1;contor<=n;++contor)
if(viz[contor])
{j++;
DFS(contor);
}
fprintf(g, "%d\n", j);
}
int main()
{fprintf(g, "citirea");
cit();
fprintf(g, "scrierea");
fct();
return 0;
}