Pagini recente » Cod sursa (job #2564498) | Cod sursa (job #162301) | Cod sursa (job #278249) | Cod sursa (job #1406536) | Cod sursa (job #363462)
Cod sursa(job #363462)
#include<cstdio>
#include<vector>
#include<deque>
#define N 100001
using namespace std;
vector<int> v[N];
int n,m,s,sol[N];
deque<int> q;
void bfs(int s)
{
int e;
sol[s]=1;
vector<int> ::iterator i;
q.push_back(s);
while (!q.empty())
{
e=q.front();
for (i=v[e].begin(); i!=v[e].end(); i++)
if (sol[*i]==0)
{
sol[*i]=1;
q.push_back(*i);
}
q.pop_front();
}
}
int main()
{
freopen ("bfs.in", "r", stdin);
freopen ("bfs.out", "w", stdout);
int x,y,cnt=0;
scanf ("%d %d", &n, &m);
for (int k=1; k<=m; k++)
{
scanf ("%d %d", &x, &y);
v[x].push_back(y);
v[y].push_back(x):
}
for (int k=1; k<=n; k++)
{
if (sol[k]==0)
{
bfs(k);
cnt++;
}
}
printf ("%d", cnt);
return 0;
}