Областная олимпиада по информатике, 2018 год, 9 класс


(k-я пара) Вам задан массив $a$, состоящий из $n$ целых чисел $a_1$, $a_2$, ..., $a_n$.
Два элемента массива $a_i$, $a_j$ с индексами $(i, j)$ $1 \le i < j \le n$, могут образовать пару и силой этой пары назовем $a_i + a_j$. Найдите силу пары, являющейся $k$-й по счету, если отсортировать все пары по неубыванию силы.
Формат входных данных:
В первой строке заданы два целых числа $n$ и $k$ ($1 \le k \le \frac{n * (n - 1)}{2}$).
Во второй строке через пробел заданы целые числа $a_1$, $a_2$, ..., $a_n$ ($0 \le a_i \le 10^6$).
Формат выходных данных:
Выведите ответ на задачу.
Примеры:
1.Вход:
3 3
7 1 4
Ответ:
11
2.Вход:
5 7
1 5 3 5 3
Ответ:
8
3.Вход:
10 32
0 0 0 0 0 0 0 0 0 0
Ответ:
0
4.Вход:
9 15
5 6 3 0 0 4 1 4 1
Ответ:
5
Замечание:
В первом примере можно сделать три пары с силами {$a_1$ + $a_2$, $a_1$ + $a_3$, $a_2$ + $a_3$} = {7 + 1, 7 + 4, 1 + 4} = {8, 11, 5}. Если их отсортировать по неубыванию силы, то получится {5, 8, 11} и третий элемент это 11.
Во втором примере можно сделать десять пар с силами {$a_1$ + $a_2$, $a_1$ + $a_3$, $a_1$ + $a_4$, $a_1$ + $a_5$, $a_2$ + $a_3$, $a_2$ + $a_4$, $a_2$ + $a_5$, $a_3$ + $a_4$, $a_3$ + $a_5$, $a_4$ + $a_5$} = {1 + 5, 1 + 3, 1 + 5, 1 + 3, 5 + 3, 5 + 5, 5 + 3, 3 + 5, 3 + 3, 5 + 3} = {6, 4, 6, 4, 8, 10, 8, 8, 6, 8}. Если их отсортировать по неубыванию силы, то получится {4, 4, 6, 6, 6, 8, 8, 8, 8, 10} и седьмой элемент это 8.
Система оценки:
Задача содержит 50 тестов, каждая из которых весят 2 балла.
Ограничения которые присутствуют в тестах:
( Yeskendir Sultanov )
посмотреть в олимпиаде

Комментарий/решение:

пред. Правка 2   -2
2020-01-02 01:56:53.0 #

показать/скрыть код

пред. Правка 2   -1
2021-02-01 20:54:07.0 #

[deleted.]

пред. Правка 2   1
2019-01-03 03:27:21.0 #

  0
2019-11-12 21:58:48.0 #

//TLE 26 test

показать/скрыть код

  0
2019-11-13 04:02:41.0 #

попробуйте использовать scanf и не используйте vector а простой массив

пред. Правка 5   0
2021-02-01 20:55:13.0 #

[deleted.]

пред. Правка 3   -1
2021-02-01 20:55:00.0 #

[deleted.]

пред. Правка 3   0
2021-02-01 20:54:40.0 #

[deleted.]

  0
2020-01-02 02:06:10.0 #

Нет такое решение не пройдет.

Полное решение предполагает использование бинпоиска по ответу.

Отсортируем числа. Для конкретной суммы C посчитаем сколько таких, что $a_i + a_j < C$. это делается за линию.

Если переберем С бинпоиском получим асимптотику  $N * log(max(2 * a_i))$

пред. Правка 2   0
2021-02-01 20:54:50.0 #

[deleted.]

  0
2020-01-02 18:53:38.0 #

показать/скрыть код

  0
2022-01-09 17:12:50.0 #

показать/скрыть код