Pagini recente » Borderou de evaluare (job #1825101) | Cod sursa (job #2798910) | Cod sursa (job #134723) | Cod sursa (job #3239936) | Cod sursa (job #1833791)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
#define MAX 100001
vector <int> a[MAX];
int n, m, val, viz[MAX];
void read() {
int x, y, i;
f>>n>>m;
for(i = 1; i <= m; i++) {
f>>x>>y;
a[x].push_back(y);
a[y].push_back(x);
}
}
void DFS(int x) {
int i;
viz[x] = val;
for(i = 0; i < a[x].size(); i++) {
if(!viz[a[x][i]])
DFS(a[x][i]);
}
}
int main()
{
int i;
read();
val = 1;
for(i = 1; i <= n; i++)
if(!viz[i]) {
DFS(i);
val++;
}
g<<val - 1<<'\n';
return 0;
}