Вопрос очень простой, но интересный. Эта статья продемонстрирует вам вопрос от Codeforces о сжатии GCD[Greatest common divisor]. Ссылка на вопрос здесь: -



Согласно условиям задачи вам дан массив A длины 2N (вам дано N). вы создали новый массив B длины (N-1), так что GCD всех его элементов должен быть больше единицы.

пример:- gcd(b1,b2…,bn−1)›1.

давайте вспомним некоторые основы математики, если вы добавите два нечетных целых числа, их сумма всегда будет четной, а если вы добавите два четных целых числа, то некоторые из них также будут четными. Итак, если мы поместим все четные элементы в массив B, то их НОД всегда ≥2, что удовлетворяет наши условия.

Итак, нам нужно подсчитать общее количество нечетных и четных целых чисел в массиве.

Num(нечетное) + Num(четное) = 2N, где Num(x) — количество элементов типа x.

Мы знаем, что есть четные числа с правой стороны. Тогда есть две возможности.

[I] : Num(нечетное) и Num(четное) четные.

OR

[II] : Num(нечетное) и Num(четное) оба нечетные.

Возьмем случай [I]: -

[I] : Num(нечетное) и Num(четное) четные.

Сначала вам нужно удалить два элемента либо из Num (нечетных), либо из Num (четных) элементов. Затем в массиве B у нас есть элементы Num(нечетные) [В паре (поэтому сумма кратна двум)], а после этого Num(четные)[В паре].

Теперь давайте обсудим случай [II]: -

[II] : Num(нечетное) и Num(четное) оба нечетные.

В этом случае вам нужно удалить одно целое число как из Num (четное), так и из Num (нечетное). Итак, теперь ваши Num (нечетное) и Num (четное) стали четными. как в первом случае. Теперь сделайте то же самое. В массиве B у нас есть элементы Num(нечетные) [в паре (так что сумма кратна двум)], а после этого Num(четные)[в паре].

Вот ссылка кода на С++: -

"Решение"

Я надеюсь, что вы понимаете это объяснение и надеюсь увидеть вас в ближайшее время.