Pagini recente » Cod sursa (job #579603) | Cod sursa (job #747784) | Cod sursa (job #399134) | Cod sursa (job #347498) | Cod sursa (job #2325788)
#include<bits/stdc++.h>
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
const int Nmax = 100005;
list<int> G[Nmax];
bitset<Nmax> viz;
int n, m, nr_comp, x, y, i;
void citire() {
f >> n >> m;
while(m--){
f >> x >> y;
G[x].push_back(y);
}
}
void dfs(int nod) {
viz[nod] = true;
list<int>::iterator it;
for(it = G[nod].begin(); it != G[nod].end(); ++it)
if(!viz[*it])
dfs(*it);
}
int main(){
citire();
for(i = 1; i <= n; ++i)
if(!viz[i]) {
nr_comp++;
dfs(i);
}
g << nr_comp;
return 0;
}