Pagini recente » Istoria paginii runda/simulare-cartita-28/clasament | Cod sursa (job #869543) | Istoria paginii runda/cei_mai_mari_olimpicari_runda_3/clasament | Istoria paginii runda/preoji_11-12_2/clasament | Cod sursa (job #2009447)
#include <fstream>
#include <vector>
using namespace std;
vector <int> v[100005];
bool viz[100005];
int solutie;
void DFS (int x) {
viz[x] = 1;
vector <int> :: iterator it;
for (it = v[x].begin(); it != v[x].end(); ++it) {
if (!viz[*it]) DFS(*it);
}
}
int main()
{
ifstream f("dfs.in");
ofstream g("dfs.out");
int n, m, x;
f >> n >> m;
for (int i = 1; i <= m; ++i) {
int a, b;
f >> a >> b;
v[a].push_back(b);
v[b].push_back(a);
}
DFS(x);
vector <int> :: iterator it;
for (int i = 1; i <= n; ++i)
if (!viz[i]) DFS(i), ++solutie;
g << solutie << "\n";
return 0;
}