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

Задача . A. Прибавление степеней


У вас есть массив \(a\) длины \(n\). Для каждого положительного числа \(x\) в течение \(x\)-й секунды вы собираетесь выполнить следующую операцию:

  • Выберите несколько различных индексов \(i_{1}, i_{2}, \ldots, i_{k}\), которые находятся в диапазоне от \(1\) до \(n\) включительно, и добавьте \(2^{x-1}\) к каждой соответствующей позиции в \(a\). Формально \(a_{i_{j}} := a_{i_{j}} + 2^{x-1}\) для \(j = 1, 2, \ldots, k\). Обратите внимание, что вы можете также не выбрать ни одного индекса.

Вы должны сделать \(a\) неубывающим как можно быстрее. Найдите наименьшее число \(T\) такое, что вы можете сделать массив неубывающим не позднее, чем через \(T\) секунд.

Массив \(a\) называется неубывающим, если и только если \(a_{1} \le a_{2} \le \ldots \le a_{n}\).

Вы должны ответить на \(t\) независимых тестовых случаев.

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

Первая строка содержит одно целое число \(t\) (\(1 \le t \le 10^{4}\))  — количество тестовых случаев.

Первая строка каждого тестового случая содержит одно целое число \(n\) (\(1 \le n \le 10^{5}\))  — длину массива \(a\). Гарантируется, что сумма значений \(n\) по всем тестовым случаям не превышает \(10^{5}\).

Вторая строка каждого теста содержит \(n\) целых чисел \(a_{1}, a_{2}, \ldots, a_{n}\) (\(-10^{9} \le a_{i} \le 10^{9}\)).

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

Для каждого тестового примера выведите минимальное количество секунд, за которое вы можете сделать \(a\) неубывающим.

Примечание

В первом тестовом случае, если вы выберете индексы \(3, 4\) на \(1\)-й секунде и \(4\) на \(2\)-й секунде, то \(a\) станет равным \([1, 7, 7, 8]\). Есть и другие способы сделать \(a\) неубывающим за \(2\) секунды, но вы не сделать его неубывающим быстрее.

Во втором тестовом случае \(a\) уже неубывающий, поэтому ответ равен \(0\).

В третьем тестовом случае, если вы ничего не сделаете в первые \(2\) секунды и в течение \(3\)-й секунды выберете индекс \(2\), \(a\) станет равным \([0, 0]\).


Примеры
Входные данныеВыходные данные
1 3
4
1 7 6 5
5
1 2 3 4 5
2
0 -4
2
0
3

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

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