Pagini recente » Cod sursa (job #3127347) | Cod sursa (job #323347) | Cod sursa (job #316209) | Cod sursa (job #661604) | Cod sursa (job #1705889)
#include <iostream>
#include <cstdio>
#include <vector>
#define Nmax 100002
using namespace std;
long int N,M;
long vizitat[Nmax];
vector< vector<long> > adj_mat(Nmax, vector<long>());
void dfs(long s)
{
vizitat[s] = 1;
for(long i = 0 ; i < adj_mat[s].size(); i++)
{
if(!vizitat[adj_mat[s][i]])
dfs(adj_mat[s][i]);
}
}
int main()
{
FILE *fin = fopen("dfs.in", "r");
FILE *fout = fopen("dfs.out" , "w");
fscanf(fin, "%li %li", &N, &M);
long comp_con = 0;
for(long i = 0 ; i < M; i++)
{
long a,b;
fscanf(fin, "%li %li", &a , &b);
adj_mat[a].push_back(b);
adj_mat[b].push_back(a);
}
for(long i = 1; i <= N; i++)
{
if(!vizitat[i])
{
dfs(i);
comp_con++;
}
}
fprintf(fout , "%li", comp_con);
fclose(fin);
fclose(fout);
}