Pagini recente » Cod sursa (job #996080) | Cod sursa (job #1786644) | Istoria paginii utilizator/bassista02 | Cod sursa (job #1895349) | Cod sursa (job #2376639)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int n, m, k = 0;
vector<vector<int>> G;
vector<bool> v;
void read()
{
fin >> n >> m;
G = vector<vector<int>>(n + 1);
v = vector<bool>(n + 1);
int a, b;
while(fin >> a >> b)
{
G[a].push_back(b);
}
}
void DFS(int x)
{
v[x] = true;
for(auto& i : G[x])
{
if(!v[i])
{
v[i] = true;
DFS(i);
}
}
}
void write()
{
fout << k;
}
int main()
{
read();
for(int i = 1; i <= n; i++)
{
if(!v[i])
{
DFS(i);
k++;
}
}
write();
return 0;
}