Pagini recente » Borderou de evaluare (job #1264961) | Cod sursa (job #3317152) | Borderou de evaluare (job #3160257) | Cod sursa (job #2212005) | Cod sursa (job #3333291)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int n,m,viz[100001],mat[100001][100001];
void dfs(int x) {
viz[x] = 1;
for (int i = 1; i <= n; i++) {
if (viz[i] == 0 && mat[x][i] == 1) {dfs(i);}
}
}
int main() {
int c=0;
fin>>n>>m;
while(m--) {
int x,y;
fin>>x>>y;
mat[x][y]=mat[y][x]=1;
}
for(int i=1;i<=n;i++) {
if(viz[i]==0) {dfs(i);c++;}
}
fout<<c;
return 0;
}