Pagini recente » Cod sursa (job #719224) | Cod sursa (job #3274400) | Cod sursa (job #2851315) | Cod sursa (job #2933676) | Cod sursa (job #974604)
Cod sursa(job #974604)
#include <iostream>
#include <fstream>
#include <stack>
using namespace std;
//DFS CU STACK
ifstream fin("dfs.in");
ofstream fout("dfs.out");
const int MAXN = 100003;
int n, m, a, b, i, result;
struct nod {
bool visited;
stack<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(b);
nods[b].vecini.push(a);
}
}
void go(int i) {
if (!nods[i].visited) {
nods[i].visited = true;
while (!nods[i].vecini.empty()) {
go(nods[i].vecini.top());
nods[i].vecini.pop();
}
}
}
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;
}