Pagini recente » Cod sursa (job #1682345) | Cod sursa (job #1097840) | Cod sursa (job #1875574) | Cod sursa (job #2700757) | Cod sursa (job #700238)
Cod sursa(job #700238)
#include<fstream>
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
int n, m, t;
int T[100001], /*D[100], F[100],*/ U[100001];
struct lista{
int nod;
lista *urm;
} *G[100001];
void adauga(int i, int j)
{
lista *p;
p = new lista;
p->nod = j;
p->urm = G[i];
G[i] = p;
}
void citire()
{
f >> n >> m;
int i, j;
while(m--)
{
f >> i >> j;
adauga(i, j);
adauga(j, i);
}
}
void DF(int nod)
{
lista *p;
U[nod] = 1;
//g << nod << " ";
for(p = G[nod]; p!=NULL; p = p->urm)
if(!U[p->nod])
{
T[p->nod] = nod;
DF(p->nod);
}
}
int main()
{
citire();
//g << "Componente conexe\n";
int nr=0;
for(int i=1; i<=n; i++)
{
if(!U[i])
{
nr++;
//g << nr << ": ";
DF(i);
//g << "\n";
}
}
g << nr << "\n";
return 0;
}