Pagini recente » Cod sursa (job #788293) | Cod sursa (job #318611) | Cod sursa (job #970684) | Cod sursa (job #2648672) | Cod sursa (job #1315780)
#include <fstream>
using namespace std;
ifstream f ("dfs.in");
ofstream g ("dfs.out");
struct nod
{
int info;
nod *adr;
};
nod *v[100005];
void adaugare (int nr, int info)
{
nod *c;
c = new nod;
c -> info = info;
c -> adr = v[nr];
v[nr] = c;
}
int n, m, x, y;
int viz[100005];
void citire ()
{
f >> n >> m;
for (int i = 1; i <= m; i ++)
{
f >> x >> y;
adaugare (x, y);
adaugare (y, x);
}
}
void dfs (int nr)
{
viz[nr] = 1;
nod *p;
p = v[nr];
while (p)
{
if (!viz[p -> info])
dfs (p -> info);
p = p -> adr;
}
}
int main()
{
int nc = 0;
citire ();
for (int i = 1; i <= n; i ++)
{
if (!viz[i])
{
++ nc;
dfs (i);
}
}
g << nc;
f.close ();
g.close ();
return 0;
}