смысл цикла
for(i=p;i!=id[i]; i=id[i])
?
Всмысле чем он отличается от просто i=p?
По-моему смысла мало...
По-видимому, цикл сразу же завершится, поскольку условие продолжения цикла false, если только p < N, а иначе UB
Я ужасно задал вопрос прошу прощения Это алгоритм на связность из седжвика int i, j, p, q, id[N]; for (i = 0; i < N; i++) id[i] = i; while (cin >> p >> q) { for (i = p; i != id[i]; i = id[i]); for (j = q; j != id[j]; j = id[j]); if (i == j) continue; id[i] = j; cout << " " << p << " " << q << endl; }; Конкретно туплю и не понимаю как это помогает Потому что если заменить на просто присваивание то связанных уже через другие элементы пар не видит Но ведь сохраняется же только предыдущее значение i и j
Ну, надо изучать что за связность
Обсуждают сегодня