Pagini recente » Cod sursa (job #1274727) | Cod sursa (job #865486) | Cod sursa (job #750257) | Cod sursa (job #1432676) | Cod sursa (job #1792067)
#include <stdio.h>
#include <vector>
int n, m;
std::vector<int> v[100001];
int lg, c=0;
bool viz[100001]={0};
void dfs( int x )
{
int i, _lg;
viz[x] = 1;
_lg=v[x].size();
for (i=0; i<_lg; i++)
if (viz[v[x][i]]==0)
dfs(v[x][i]);
}
char buff[20000];int pos=0;
FILE*f=freopen("dfs.in","r",stdin);
FILE*g=freopen("dfs.out","w",stdout);
inline void read(int &nr){
while(buff[pos] < '0' || buff[pos] > '9')if(++pos == 20000) fread(buff, 1, 20000, stdin), pos = 0;
nr = 0;
while('0' <= buff[pos] && buff[pos] <= '9') {nr = nr * 10 + buff[pos] - '0';if(++pos == 20000) fread(buff, 1, 20000, stdin), pos = 0;}
}
int main()
{
fread(buff, 1, 20000, stdin), pos = 0
int i, x, y;
read(n);
read(m);
for (i=0; i<m; i++)
{
read(x);read(y);
v[x].push_back(y);
v[y].push_back(x);
}
for (i=1;i<=n;i++)
if (viz[i]==0)
c++, dfs(i);
printf("%d\n", c);
}