2018kat
10.02.2022 17:28

Код не выводит правильно информацию про двудольность графов,подскажите где ошибка
#include

using namespace std;

vector graph[100000];
char color[100000];

inline char invert(int c) {
return c == 1 ? 2 : 1;
}

void dfs(int v, char c) {
color[v] = c;

for (int u : graph[v]) {
if (color[u] == 0) {
dfs(u, invert(c));
}
else if (color[u] == c) {
cout << "Graph ne dvydolniy." << endl;
exit(0);
}
}
}

int main() {
const int n = 6;
bool bipartite_graph = true;
vector> graph =
{
{1,0,1,0,1,0},
{1,0,1,0,1,1},
{0,1,0,1,0,1},
{0,1,1,0,1,1},
{1,1,0,1,0,0},
{0,1,0,1,1,0}
};

for (int i = 0; i < n; i++) {
if (color[i] == 0) {
dfs(i, 1);
}
}

cout << "Graph dvydolniy." << endl;
}

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Kotmi679
11.03.2023 00:50
Расположите клавиатуру и мышку на одном уровне, примерно на уровне локтя. Предплечья должны свободно свисать по бокам.



Когда вы печатаете, расположите клавиатуру по центру перед собой, а рядом — мышку.Часто используемые предметы должны находиться рядом, чтобы до них можно было легко дотянуться.Во время печати или работы с мышкой

запястья держите прямо. Не сгибайте запястья и не уводите их в стороны. Если у клавиатуры есть ножки, используйте их для более правильного и удобного положения запястий во время работы за клавиатурой.

При печати кисти рук и запястья должны как бы нависать над клавиатурой, так, чтобы работала вся кисть, а не отдельныепальцы пытались дотянуться до удаленных

клавиш.

Печатайте, слегка ударяя по клавишам. Кисти рук и пальцы должны быть расслаблены, так как много силы прикладывать, чтобы нажать на клавишу, не надо.Используя мышь или джойстик, прикасайтесь к ее кнопкам мягко. Рука должна быть расслабленной, а не крепко сжимать м

анипулятор.

Не опускайте руки ни на какую поверхность во

время печати. Если у клавиатуры есть подставка, ее можно использовать в перерывах для отдыха.Когда вы не печатаете и не используете мышь, старайтесь расслабить кисти рук и предплечья. Не держите руки на краю рабочего стола.
0,0(0 оценок)
Ответ:
Jirnyi
11.05.2021 04:21
PascalABC.NET 3.4.2, сборка 1884 от 24.11.2018Внимание! Если программа не работает, обновите версию!

begin

 var n := ReadInteger;

 var L := new List<(integer, integer)>;

 loop n do

 begin

   L.Add(ReadInteger2)

 end;

 var k := L.Count;

 L := L.Distinct.ToList; // этап 1

 var k1 := L.Count;

 Print(k - k1);

 (k, k1) := (k1, 0); // этап 2

 var St := new Stack<integer>;

 var m := L.First[0]; // время

 for var i := 1 to k - 1 do

   if L[i][0] <= m then

   begin

     St.Push(i);

     Inc(k1)

   end

   else m := L[i][0];

 for var i := 1 to k1 do

   L.RemoveAt(St.Pop);

 Print(k1);

 (k, k1) := (L.Count, 0); // этап 3

 m := L.First[1]; // температура

 for var i := 1 to k - 1 do

   if Abs(L[i][1] - m) > 10 then

   begin

     St.Push(i);

     Inc(k1)

   end

   else m := L[i][1];

 for var i := 1 to k1 do

   L.RemoveAt(St.Pop);

 Println(k1);

end.

Пример610 58 58 58 512 2513 102 1 1
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота