Pagini recente » Diferente pentru template/algoritmiada-2011/header intre reviziile 11 si 10 | Diferente pentru problema/tygyn intre reviziile 9 si 8 | Diferente pentru problema/tri3 intre reviziile 10 si 9 | Diferente pentru problema/cautbin intre reviziile 60 si 45 | Cod sursa (job #1497116)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
vector<int> nod[100001];
int g[100001];
void rez(int x)
{
g[x] = 1;
int i;
for (i = 0; i < nod[x].size(); i++)
{
if (g[nod[x][i]]==0)
rez(nod[x][i]);
}
}
int main()
{
ifstream in("dfs.in");
ofstream out("dfs.out");
int i, n, m, x, y,t=0;
in >> n;
in >> m;
for (i = 1; i <= m; i++)
{
in >> x;
in >> y;
nod[x].push_back(y);
}
for (i = 1; i <= n; i++)
{
if (g[i] == 0)
{
rez(i);
t++;
}
}
out << t;
}