2. Рестораны

Не решаласьСложная

Регулярно пользователи Яндекс Карт выбирают подходящий для них ресторан по множеству критериев.

Для упрощения будут рассмотрены два фактора, влияющие на их выбор: расстояние до пользователя и рейтинг организации. Имеется несколько тысяч попарных оценок от реальных пользователей, в каждой из которых одна пара (расстояние, рейтинг) сравнивается с другой.

Необходимо построить модель, монотонно зависящую от двух этих факторов, которая согласуется с наибольшей долей оценок.

Формат ввода

Обучающий датасет restaurants_train.txt находится в архиве, доступном по адресу.

Каждая его строка содержит 5 чисел, разделённых табуляцией: winnerwinner, r1r_1, r2r_2, d1d_1, d2d_2. При этом winnerwinner равен 00, если победил первый ресторан, 11, если второй и 0.50.5, если случилась ничья. Пары ri,dir_i, d_i соответствуют рейтингам и расстояниям для первого и второго ресторанов. Рейтинги rir_i равны либо 1-1, что означает, что рейтинг отсутствует, либо принимают действительные значения от 00 до 1010.

Расстояния did_i равны 11, если настоящее расстояние не меньше 500500 километров и отношению distance_in_kilometers500\frac{distance\_in\_kilometers}{500} в противном случае.

Во время тестирования на вход вашей программе будет дан файл restaurants.in, в котором в первой строке указано число n20000n \le 20000 — количество ресторанов, для которых вам нужно указать, насколько они хороши. В следующих nn строках задано по два числа, разделённых табом — в ii-ой строке rir_i и did_i.

Формат вывода

Необходимо вывести nn строк, в каждой из которых содержится по одному действительному числу — в ii-ой строке число scoreiscore_i, означающее насколько хорош соответствующий ресторан.

Решение считается корректным, если не существует двух ресторанов (rir_i, did_i), (rjr_j, djd_j), таких, что рейтинги rir_i и rjr_j определены, rirjr_i \ge r_j, didjd_i \le d_j и при этом первый ресторан оценён хуже, чем второй (scorei<scorejscore_i \lt score_j). Если решение некорректно, то оно получает 00 баллов.

Для корректного решения будет подсчитана его согласованность с NN парами вида (winnerkwinner_k, looserklooser_k), про которые известно, что пользователь оценил ресторан winnerkwinner_k выше, чем looserklooser_k. Чем больше разница между победителем и проигравшим, тем выше итоговый балл. А именно, будет подсчитано

Решение будет принято, если m0.65m \le 0.65.

Ограничения

Ограничение времени

10 с

Ограничение памяти

64 МБ

Теги

Нужно войти, чтобы отправить решение.Войти