Імпульс м'ячей#234

Імпульс м'ячей (Розбір)

Розберемо умову. Пара підходить, якщо її складність не менша за складність будь-якої пари (i', j'), у якої i' \ne i і j' \ne j. Максимум по таких парах дорівнює

\Bigl(\max_{i' \ne i} w_{i'}\Bigr) \cdot \Bigl(\max_{j' \ne j} p_{j'}\Bigr),

бо ваги й потужності додатні й вибираються незалежно.

Позначимо — максимум масиву , W_2 — другий максимум, c_W — скільки разів трапляється ; аналогічно , P_2, c_P для масиву . Тоді \max_{i' \ne i} w_{i'} дорівнює W_2, якщо w_i = W і c_W = 1, і в усіх інших випадках.

Тепер ключове спостереження: якщо w_i < W і p_j < P, то права частина дорівнює W \cdot P, що строго більше за w_i p_j, — пара не підходить. Отже, у будь-якій підхожій парі w_i = W або p_j = P. Це дозволяє не перебирати всі n^2 пар.

Випадок 1: w_i = W і p_j = P. Тоді ліва частина — глобальний максимум добутку, тому нерівність виконується завжди. Таких пар рівно c_W \cdot c_P.

Випадок 2: w_i = W, p_j < P. Тоді \max_{j' \ne j} p_{j'} = P. Якщо c_W \ge 2, умова перетворюється на W p_j \ge W P, тобто p_j \ge P — суперечність, підхожих пар немає. Якщо ж c_W = 1, умова стає W \cdot p_j \ge W_2 \cdot P; лишається порахувати, скільки p_j < P їй задовольняють.

Випадок 3 симетричний до другого.

Кожен випадок обробляється одним проходом, тому загальна складність — . Добутки сягають 10^{18}, тому рахуйте у 64-бітному типі.