Девять задач, в которых считаются пары или тройки. Сначала решите, какие пары считаются — условие всегда это говорит, — потом напишите циклы, а потом проверьте, сколько шагов они делают при самом большом вводе.
- Пары с равными значениями и Пары с целевой суммой — это пары позиций
i < jв векторе: внутренний цикл начинается сi + 1. Приn ≤ 5000это около 1,25 · 10⁷ проверок — нормально. - В Парах с целевой суммой
Kиa[i] + a[j]доходят до 2 · 10⁹: читайтеKи сравнивайте сумму какlong long.intне вмещает 2 · 10⁹. - Пары с заданной суммой — то же самое, только по числам от 1 до
Nвместо вектора. - Пары делителей и Произведения, кратные K считают упорядоченные пары:
(1, 2)и(2, 1)— разные, иi = jтоже считается, поэтому оба цикла идут от 1 доN. В Парах делителей для надёжности храните количество вlong long, а произведениеi * jвычисляйте до% K— оно до 9 · 10⁶ и помещается вint. - Пары с заданным произведением:
i ≤ j, поэтомуjначинается сi. - Проверка на сумму двух квадратов и Сумма двух квадратов берут
положительные
aиb. Впишите ограничение в проверки циклов, как в уроке (a * a < N,a * a + b * b <= N): два цикла до самогоN = 10⁶— это 10¹² шагов. В Сумме двух квадратов условиеa ≤ bсчитает каждую пару один раз. - Пифагоровы тройки:
1 ≤ a ≤ b ≤ c ≤ N, три цикла, каждый начинается с переменной предыдущего. ПриN = 500c * cне больше 250 000 — переполнения нет.