Pagini recente » Cod sursa (job #1628832) | Istoria paginii runda/simularesvi | Istoria paginii runda/maplictisesc/clasament | Cod sursa (job #2504876) | Cod sursa (job #1547792)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int n, m, i, j, cnt;
bool ok[1005];
vector<int> G[100005];
void ReadGraph();
void DFS(int);
int main()
{
ReadGraph();
for(int i = 1; i <= n; i++)
if(ok[i] == 0)
DFS(i), cnt++;
fout << cnt;
return 0;
}
void ReadGraph()
{
fin >> n >> m;
for(int k = 1; k <= m; k ++)
{
fin >> i >> j;
G[i].push_back(j);
G[j].push_back(i);
}
}
void DFS(int nod)
{
ok[nod] = true;
for(vector<int>::iterator I = G[nod].begin(); I!= G[nod].end(); I++)
if(ok[*I] == 0)
DFS(*I);
}