Олимпиадный тренинг

Задача . A. Разбиение карт


У вас есть несколько карт. На каждой карте написано целое число от \(1\) до \(n\): в частности, для каждого \(i\) от \(1\) до \(n\) у вас есть \(a_i\) карт, на которых написано число \(i\).

Также существует магазин, в котором продается неограниченное количество карт каждого типа. У вас есть \(k\) монет, поэтому вы можете купить в общей сложности не более \(k\) новых карт, и карты, которые вы покупаете, могут содержать любые целые числа от \(\mathbf{1}\) до \(\mathbf{n}\), включительно.

После покупки новых карт вы должны разбить все свои карты на колоды согласно следующим правилам:

  • все колоды должны иметь одинаковый размер;
  • нет пары карт с одинаковым числом в одной колоде.

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

Входные данные

Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит одно целое число \(t\) (\(1 \le t \le 10^4\)) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит два целых числа \(n\), \(k\) (\(1 \leq n \leq 2 \cdot 10^5\), \(0 \leq k \leq 10^{16}\)) — количество различных типов карт и количество монет.

Вторая строка каждого набора входных данных содержит \(n\) целых чисел \(a_1, a_2, \ldots, a_n\) (\(0 \leq a_i \leq 10^{10}\), \(\sum a_i \geq 1\)) — количество карт типа \(i\), имеющихся у вас в начале, для каждого \(1 \leq i \leq n\).

Гарантируется, что сумма \(n\) по всем наборам входных данных не превосходит \(2 \cdot 10^5\).

Выходные данные

Для каждого набора входных данных выведите одно целое число — максимально возможный размер колоды при оптимальных действиях.

Примечание

В первом наборе входных данных вы можете купить одну карту с числом \(1\), и ваш набор карт станет таким: \([1, 1, 1, 1, 2, 2, 3, 3]\). Вы можете разбить их на колоды \([1, 2], [1, 2], [1, 3], [1, 3]\). Они все имеют размер \(2\), и все содержат разные значения. Можно показать, что невозможно получить разбиение с колодами размером больше \(2\), поэтому ответ — \(2\).

Во втором наборе входных данных вы можете купить две карты с числом \(1\) и одну карту с числом \(3\), и ваш набор карт станет таким: \([1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 4, 4, 5, 5, 5, 5]\). Его можно разбить на колоды \([1, 2, 3], [1, 2, 4], [1, 2, 5], [1, 2, 5], [2, 3, 5], [2, 4, 5]\). Можно показать, что нельзя получить разбиение с колодами размером больше \(3\), поэтому ответ — \(3\).


Примеры
Входные данныеВыходные данные
1 9
3 1
3 2 2
5 4
2 6 1 2 4
2 100
1410065408 10000000000
10 8
7 4 6 6 9 3 10 2 8 7
2 12
2 2
2 70
0 1
1 0
1
3 0
2 1 2
3 1
0 3 3
2
3
1
7
2
2
1
1
2

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя