Pagini recente » Cod sursa (job #1456423) | Borderou de evaluare (job #2014720) | Borderou de evaluare (job #971531) | Borderou de evaluare (job #2079748) | Cod sursa (job #2376662)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int n, m, k = 0;
vector<vector<int>> G;
vector<bool> v;
void read()
{
fin >> n >> m;
G = vector<vector<int>>(n + 1);
v = vector<bool>(n + 1);
int a, b;
while(fin >> a >> b)
{
G[a].push_back(b);
G[b].push_back(a);
}
}
void DFS(int x)
{
v[x] = true;
for(auto& i : G[x])
{
if(!v[i])
{
DFS(i);
}
}
}
void write()
{
fout << k;
}
int main()
{
read();
for(int i = 1; i <= n; i++)
{
if(!v[i])
{
DFS(i);
k++;
}
}
write();
return 0;
}