Informatică, întrebare adresată de popadaniela30, 8 ani în urmă

VA ROG, AM NEVOIE DE PROBLEMA #438 DE PE PBINFO!!!

Răspunsuri la întrebare

Răspuns de WizKid
1

Răspuns:

Problema 438 (Componente Conexe)

#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;

}

Alte întrebări interesante