Задача типа #26: Обработка данных с помощью сортировки
Обработка данных с помощью сортировки
Сервис такси составляет рейтинг водителей для премирования.
Для каждого водителя в списке указаны количество отрицательных отзывов и количество положительных отзывов за определённое время работы.
Все водители в списке пронумерованы, начиная с единицы.
В рейтинговом списке администраторы располагают водителей по следующему алгоритму:
– Все 2N чисел, обозначающих количество отрицательных и положительных отзывов для N водителей, упорядочивают по возрастанию;
– Если минимальное число в этом упорядоченном списке – количество отрицательных отзывов,
то водитель в рейтинге занимает первое свободное место от его начала;
– Если минимальное число – количество положительных отзывов, то водитель занимает первое свободное место от конца рейтинга;
– Если число обозначает количество отрицательных или положительных отзывов уже размещённого в рейтенге водителя, то это число не принимают во внимание при формировании рейтинга.
Рейтинг водителей - порядковый номер водителя в итоговом списке. Рейтинг начинается с единицы.
Этот алгоритм применяется последовательно для размещения всех N водителей.
Формат входных данных:
В первой строке входного файла находится натуральное число N (N ≤ 1000) – количество водителей.
Следующие N строк содержат пары чисел, обозначающих соответственно количество отрицательных отзывов.
и количество положительных отзывов (все числа натуральные, различные).
Определите и запишите в ответе три числа:
– Номер последнего водителя, для которого будет определено его место в рейтинге.
– Место в рейтинге водителя, для которого будет определено его место в рейтинге последним.
– Количество водителей, которые займут в рейтинге более низкие места.
Алгоритм решения: Разделяем рейтин на две группы: sPlus - положительные отзывы, sMinus - отрицательные отзывы. Сортировка: sPlus по возрастанию, sMinus по убыванию. Формируем общий рейтинг по условиям задачи.
Посмотреть решение задачи (код на Python) в Telegram боте по ID задачи 126016