Pagini recente » Cod sursa (job #2708218) | Cod sursa (job #2211363) | Cod sursa (job #2343101) | Cod sursa (job #277687) | Cod sursa (job #974601)
Cod sursa(job #974601)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
const int MAXN = 100003;
int n, m, a, b, i, result;
struct nod {
bool visited;
vector<int> vecini;//vecinii nodului
}nods[MAXN];//vectorul cu nodurile
void read() {
fin >> n >> m;
for (; i < m; ++i) {
fin >> a >> b; cout << a << ' ' << b << '\n';
nods[a].vecini.push_back(b);
nods[b].vecini.push_back(a);
}
}
void go(int i) {
if (!nods[i].visited) {
nods[i].visited = true;
int nr = nods[i].vecini.size();
for (int poz = 0; poz < nr; ++poz) {
go(nods[i].vecini[poz]);
}
}
}
int main() {
read();
for (i = 1; i <= n; ++i) {
if (!nods[i].visited) {
++result;
go(i);
}
}
fout << result << '\n';
fin.close();
fout.close();
return 0;
}