#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
int main () {
int n, m, k, mas[4][4];
int cur = 0;
cin>>n>>m;
vector <int> was(n, -1);
queue <int> q;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin>>mas[i][j];
}
}
for (int i = 0; i < n; i++)
{
if (was[i] != -1)
continue;
q.push(i);
while (!q.empty())
{
int v = q.front();
q.pop();
if (was[v] != -1)
continue;
was[v] = cur;
for (int j = 0; j < n; j++)
if (mas[i][j] != 0 && was[j] == -1)
q.push(j);
}
cur++;
}
cout<<cur;
}
Данный код считает максимальную компоненту связности. Как найти их количество?
Например,
3
0 0 0
0 0 1
0 1 0
Эта программа выводит 3, а количество будет равно 2.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Почему лучше вызывать константный operator[] из не константного operator[] а не наоборотЯ не вижу разницы между этими двумя способами
Перед тем, как задать switch, я пишу int a, дабы задать switch (a)
Не могу решить эту задачу (проходит 10 из 12 проверок): Задача №33