Pagini recente » Cod sursa (job #1454383) | Istoria paginii utilizator/adelindutu | Cod sursa (job #87744) | Cod sursa (job #2470198) | Cod sursa (job #1571341)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("dfs.in");
ofstream q("dfs.out");
long long viz[100001];
vector <long long> v[100001];
void dfs(long long k)
{
for (vector<long long>::iterator it = v[k].begin() ; it != v[k].end(); it++)
if (viz[*it] == 0) {viz[*it] = 1; dfs(*it);}
}
int main()
{
long long n,m,x,y,nr = 0;
f >> n >> m;
for (long long i = 0; i < m; i++){f>>x>>y; v[x].push_back(y);v[y].push_back(x);}
for (long long i = 1; i <= n; i++ )
if (viz[i] == 0){viz[i] = 1; dfs(i); nr++;}
q<<nr;
f.close();
q.close();
}