You are on page 1of 1

#include <bits/stdc++.

h>
using namespace std;
ifstream f("componenteconexe.in");
ofstream g("componenteconexe.out");
int a[101][101], i, j, n, k = 1, viz[101];
void bf(int x)
{
   int c[101], i, u, v, p;
   c[1] = x;
   viz[x] = k;
   p = 1;
   u = 1;
   while(p <= u)
   {
       v = c[p++];
       for(i = 1; i <= n; i++)
           if(a[v][i] == 1 && viz[i] == 0)
               {
                   c[++u] = i;
                   viz[i] = k;
               }
   }
}
int main()
{
   f >> n;
   while(f >> i >> j)
   {
       a[i][j] = 1;
       a[j][i] = 1;
   }
   bf(1);
   for(i = 1; i <= n; i++)
       if(viz[i] == 0)
           {
               k++;
               bf(i);
           }
   g << k << '\n';
       for(i = 1; i <= k; i++)
           {
               for(j = 1; j <= n; j++)
                   if(viz[j] == i) g << j << " ";
               g << '\n';
           }
   return 0;
}

You might also like