Ранговая связь чеков магазина
Условие
В сети супермаркетов для каждого чека сохраняются идентификатор магазина, число товаров и итоговая сумма в копейках. Иногда одна из двух величин не поступает в отчёт: такое значение записано как -1.
Для магазина из запроса требуется вычислить коэффициент ранговой корреляции Спирмена между числом товаров и суммой чека. В расчёт входят только чеки этого магазина, у которых известны обе величины.
Пусть после исключения неполных чеков осталось m чеков. Числу товаров и сумме каждого чека присваиваются ранги по возрастанию, начиная с 1. Коэффициент Спирмена определяется формулой r = 1 - 6 * S / (m * (m^2 - 1)), где S — сумма квадратов разностей рангов двух величин по всем m чекам.
Если среди учитываемых чеков запрошенного магазина совпадают числа товаров или совпадают суммы, таких чеков во входных данных не бывает. Если после исключения неполных чеков осталось меньше двух чеков, необходимо вывести 0.000.
Формат ввода
В первой строке дано целое число n — число строк с чеками.
В следующих n строках даны четыре целых числа: store_id, receipt_id, items_count, total_kopecks.
В последней строке дано целое число query_store_id — идентификатор магазина из запроса.
Формат вывода
Выведите коэффициент ранговой корреляции Спирмена для магазина из запроса с тремя знаками после десятичной точки.
Ограничения
1 <= n <= 4000.
1 <= store_id, query_store_id <= 1000.
1 <= receipt_id <= 10^9.
items_count равно -1 или целому числу от 1 до 1000.
total_kopecks равно -1 или целому числу от 100 до 2000000.
Идентификаторы чеков различны.
Для каждого магазина среди чеков, у которых известны обе величины, значения items_count попарно различны, и значения total_kopecks также попарно различны.
Решить задачу с автопроверкой на Python →
Куда дальше
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- Олимпиада по информатике: с чего начать — два мира олимпиад — ВсОШ и перечневые: этапы, задания и на каком языке писать
- На программиста по олимпиаде: путь по классам — что даёт диплом, куда с ним берут на ИТ-направления и почему решает 9 класс