13. Красота требует жертв

Не решаласьСредняя

Есть набор из nn вещей, у которых есть определенные характеристики. Для каждой вещи помимо характеристик известен факт ее наличия в магазине, а также цена cc. У вас есть kk бурлей на покупку вполне конкретной вещи, но может оказаться так, что ее нет в наличии или она вам не по карману. Найдите 5 кандидатов, имеющихся в наличии и подходящих по стоимости, при этом наиболее похожих на нужную вещь. Похожесть между вещами uu и vv определим как Евклидово расстояние между ними.

Вам будет задано qq запросов вида ii, kk, где ii - это номер нужной вам вещи, а kk - количество бурлей в ваших карманах. Если нужная вам вещь подходит по стоимости и есть в наличии, выведите ее номер, в противном случае выведите ровно 5 кандидатов, подходящих под условие задачи.

Гарантируется, что всегда есть хотя бы 5 вещей, подходящих под требуемые условия.

Формат ввода

Открытый файл с описанием вещей содержит следующие данные. В первой строчке задается nn, 10n10410 \leq n \leq 10^4 - количество вещей в магазине. Далее идут nn строк с описаниями вещей вида pp, cc, f1,f2,...,f10f_1,f_2,...,f_{10}, где p{0,1}p \in \{0,1\} - признак наличия вещи в магазине, 1c1051\leq c\leq 10^5 --- стоимость вещи, f1,f2,...,f10f_1,f_2,...,f_{10} - определенные характеристики вещи, 100<fi<100-100 < f_i < 100.

В отдельном файле с примерами запросов и ответов на них содержатся строки вида ii, kk, a1,a2,a3,a4,a5a_1,a_2,a_3,a_4,a_5 либо ii, kk, aa в зависимости от того, подходит ли под условие запрашиваемая вещь. Здесь 0in10\leq i\leq n-1, 1k1051\leq k \leq 10^5, 0a,a1..5n10\leq a, a_{1..5}\leq n-1. Эти данные нужны для проверки вашего решения.

В закрытом файле, на котором будет тестироваться ваша программа, в первой строчке задаются два числа nn, 10n10410 \leq n \leq 10^4 и q,1q103q, 1 \leq q \leq 10^3, разделенные пробелами, где nn - количество вещей в магазине, а qq - количество запросов. Далее идут nn строк с описаниями вещей вида p,c,f1,f2,...,f10p,c,f_1,f_2,...,f_{10}, где p{0,1}p \in \{0,1\} - признак наличия вещи в магазине, 1c1051\leq c\leq 10^5 - стоимость вещи, f1,f2,...,f10f_1,f_2,...,f_{10} - определенные характеристики вещи, 100<fi<100-100 < f_i < 100. После чего идут qq строк вида ii, kk, 0in10\leq i\leq n-1, 1k1051\leq k \leq 10^5.

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

Ваша программа должна вывести ответы на qq запросов: в первой строке выведите количество найденных вещей kk (k{1,5}k \in \{1,5\}), во второй строке необходимо вывести либо индекс вещи, если она в наличии и её стоимость меньше либо равна сумме, имеющейся у вас, либо ровно пять индексов подходящих под это условие вещей, разделённых пробелами. Порядок вещей в списке может быть любым.

Для удобства индексы вещей нумеруются с нуля. В случае, когда больше пяти вещей подходят под условие, вы можете вывести любые пять из них.

В результате работы ваша программа должна предложить такие объекты, что среднее Евклидово расстояние от них до исходной вещи не должно превышать ответ жюри более чем в два раза для каждого запроса.

Примечание

https://disk.yandex.ru/d/g9VIKdbAneh6Fw - ссылка на файл с открытыми примерами данных.

https://disk.yandex.ru/d/vabElRMn4VDFZg - ссылка на файл с открытыми примерами запросов и ответов.

Ограничения

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

5 с

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

256 МБ

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