#include <bits/stdc++.h>
#include <math.h>
using namespace std;
#define ll long long
#define lli long long int
#define f(i,n) for(int i=0;i<n;i++)
#define ri(i,n) for(int i=n-1;i>=0;i--)
#define fl(i,m,n) for(int i=m;i<=n;i++)
#define rl(i,m,n) for(int i=n;i>=m;i--)
#define pb push_back
#define py cout<<"YES"
#define pn cout<<"NO"
const ll mod=1e9+7;
typedef vector<ll> vll;
void output(vector<int>arr, int n)
{
f(i,n)
std::cout << arr[i]<<" ";
cout<< std::endl;
}
lli max(lli a, lli b)
{
return a>b?a:b;
}
lli min(lli a, lli b)
{
return a<b?a:b;
}
lli gcd(long long int a, long long int b)
{
if(a%b==0)
return b;
else
return gcd(b,a%b);
}
lli lcm(lli a,lli b){return (a/gcd(a,b)*b);}
int main() {
// your code goes here
int T;
std::cin >> T;
for(int ab=1;ab<=T;ab++)
{
//------------------------------------------------------------------------
lli n;
std::cin >> n;
lli arr[n];
f(i,n)
{
std::cin >> arr[i];
}
if(n==1)
{
std::cout << 0 << std::endl;
continue;
}
lli maxi=arr[0],df=0;
f(i,n)
{
if(arr[i]>maxi)
maxi=arr[i];
else
df=max(df,maxi-arr[i]);
}
if(df==0)
{
std::cout << 0 << std::endl;
continue;
}
int ans=log2(df);
std::cout << ans+1 << std::endl;
}
return 0;
}
1529A - Eshag Loves Big Arrays | 19. Remove Nth Node From End of List |
925. Long Pressed Name | 1051. Height Checker |
695. Max Area of Island | 402. Remove K Digits |
97. Interleaving String | 543. Diameter of Binary Tree |
124. Binary Tree Maximum Path Sum | 1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts |
501A - Contest | 160A- Twins |
752. Open the Lock | 1535A - Fair Playoff |
1538F - Interesting Function | 1920. Build Array from Permutation |
494. Target Sum | 797. All Paths From Source to Target |
1547B - Alphabetical Strings | 1550A - Find The Array |
118B - Present from Lena | 27A - Next Test |
785. Is Graph Bipartite | 90. Subsets II |
1560A - Dislike of Threes | 36. Valid Sudoku |
557. Reverse Words in a String III | 566. Reshape the Matrix |
167. Two Sum II - Input array is sorted | 387. First Unique Character in a String |