Разбор задачи "Шесть Семь" (2200H), пользуйтесь! #likepls #sixseven #fyp

Правка ru1, от GGkostya548, 2026-05-21 10:07:25

Суть задачи:

Найти минимальное x ≥ 0, чтобы для всех ai число ai + x было «специальным».

Число j специальное, если min⁡(v2(j), v3(j)) > v7(j)

Ключевые наблюдения:

Необходимое условие: Специальное число всегда делится на 6 (иначе min(v2,v3) = 0​, что не может быть > v7 ≥ 0).

Проверка возможности: Если остатки ai(mod6) различны, ответ -1, так как нельзя сделать все числа кратными 6 одним сдвигом.

Поиск ответа: Если остатки одинаковы, то x должен иметь вид x0 + 6k.

Перебираем k = 0, 1, 2 … и проверяем условие specialness для всех элементов. Так как «плохие» кратные 6 (делящиеся на 7 с недостаточной степенью 2 или 3) встречаются редко, достаточно проверить первые несколько десятков кандидатов.

Алгоритм:

Если ∃i,j : ai ≡/ aj(mod6) → −1.

Иначе находим минимальное неотрицательное x0, такое что a1 + x0​ кратно 6.

Перебираем x = x0​, x0​ + 6, x0​ + 12 … пока не найдем x, при котором все ai​ + x удовлетворяют условию min(v2​, v3​ ) > v7​.

Теги #coding, #taska, #sixseven, #programming

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
ru1 Русский GGkostya548 2026-05-21 10:07:25 1060 Первая редакция (опубликовано)