Pagini recente » Cod sursa (job #1481829) | Cod sursa (job #633357) | Cod sursa (job #653425) | Cod sursa (job #378115) | Cod sursa (job #1851826)
#include <stdio.h>
#include <vector>
using namespace std;
#define MAX 100000
vector<int> v[MAX + 1];
bool viz[MAX + 1];
void dfs(int nod)
{
viz[nod] = 1;
for(int i = 0; i < v[nod].size(); i++)
if(viz[v[nod][i]] == 0)
{
dfs(v[nod][i]);
}
}
int main()
{
FILE *fin, *fout;
fin = fopen("dfs.in", "r");
fout = fopen("dfs.out", "w");
int n, m, cnt = 0;
fscanf(fin, "%d %d", &n, &m);
for(int i = 1; i <= m; i++)
{
int x, y;
fscanf(fin, "%d %d", &x, &y);
v[x].push_back(y);
v[y].push_back(x);
}
for(int i = 1; i <= n; i++)
{
if(viz[i] == 0)
{
cnt++;
dfs(i);
}
}
fprintf(fout, "%d\n", cnt);
//for(int i = 1; i <= cnt; i++)
//fprintf(fout, "%d\n", sol[i]);
return 0;
}