Pagini recente » Clasament preONI 2007, Runda 1, Clasa a 9-a si gimnaziu | Clasament mf_boss2 | Cod sursa (job #2080334) | Cod sursa (job #1235880) | Cod sursa (job #1497997)
#include <iostream>
#include <fstream>
#include <vector>
#include <stdlib.h>
#define nmax 100005
using namespace std;
vector <bool> viz(nmax,false);
long *g[nmax];
ifstream fin("dfs.in");
ofstream fout("dfs.out");
void dfs(long x)
{int i;
viz[x]=1;
for(i=1;i<=g[x][0];i++)
if(!viz[g[x][i]])
dfs(g[x][i]);
}
int main()
{int i,n,m;
fin>>n>>m;
for(i=1;i<=n;i++)
{g[i]=(long*)realloc(g[i],sizeof(long));
g[i][0]=0;}
long x,y;
for(i=1;i<=m;i++)
{
fin>>x>>y;
g[x][0]++;
g[x]=(long*)realloc(g[x],(g[x][0]+1)*sizeof(long));
g[x][g[x][0]]=y;
g[y][0]++;
g[y]=(long*)realloc(g[y],(g[y][0]+1)*sizeof(long));
g[y][g[y][0]]=x;
}
long nr=0;
for(i=1;i<=n;i++)
if(!viz[i])
{dfs(i);nr++;}
fout<<nr;
}