Pagini recente » Istoria paginii runda/maricei3 | Istoria paginii runda/simulareoji2/clasament | Diferente pentru warm-up-2019/solutii/shoturi intre reviziile 95 si 94 | Clasament 1323 | Cod sursa (job #2667748)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int n, m, viz[100010], a, b, nr;
vector <int> v[100010];
void dfs(int k)
{
viz[k]=1;
if(v[k].size())
for(int i=0; i<=v[k].size()-1; ++i)
if(viz[v[k][i]]==0)
dfs(v[k][i]);
}
int main()
{
fin>>n>>m;
for(int i=1; i<=m; ++i)
{
fin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
for(int i=1; i<=n; ++i)
{
if(viz[i]==0)
{
nr++;
dfs(i);
}
}
fout<<nr;
return 0;
}