Pagini recente » Cod sursa (job #2355161) | Cod sursa (job #54101) | Cod sursa (job #2615866) | Cod sursa (job #2298283) | Cod sursa (job #278129)
Cod sursa(job #278129)
1. #include<fstream.h>
2. #define max 100004
3. #define maxm max*(max-1)/2
4.
5.
6. ifstream fin("dfs.in");
7. ofstream fout("dfs.out");
8.
9. int n,m,v[max],nc;
10. struct nod {int info;
11. nod *urm;
12. };
13. nod *l[max];
14. void adauga(int x,int y);
15.
16. void citire()
17. {int i,x,y;
18. fin>>n>>m;
19. for(i=1;i<=m;i++)
20. {fin>>x>>y;
21. adauga(x,y);
22. adauga(y,x);
23. }
24. }
25.
26. void adauga(int x,int y)
27. {nod *d;
28. d=new nod;
29. d->info=y;
30. d->urm=l[x];
31. l[x]=d;
32. }
33.
34.
35. void dfs(int i)
36. {v[i]=1;
37. nod *d;
38. d=l[i];
39. while(d)
40. {if(v[d->info]==0) dfs(d->info);
41. d=d->urm;
42. }
43.
44. }
45.
46.
47. int main()
48. {int i; nc=0;
49. citire();
50.
51. for(i=1;i<=n;i++)
52. if(v[i]==0) {dfs(i);
53. nc++;
54. }
55.
56. fout<<nc;
57.
58. fin.close();
59. fout.close();
60.
61. return 0;
62. }