➤  Problem Link : 1339C. Powered Addition  
✅ C++ Solution :
 
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define pb push_back
#define mp make_pair
ll m =1000000007;
bool func(ll t, ll arr[],ll n)
{
	ll v[n];
	v[0]=arr[0];
	ll d;
	ll val=pow(2,t)-1;
	//cout<<t<<" "<<val<<endl;
	for(int i=1;i<n;i++)
	{
		if(arr[i]>=v[i-1])
			v[i]=arr[i];
		else
		{
			d=v[i-1]-arr[i];
			if(d<=val)
				v[i]=v[i-1];
			else
				return 0;
		}
	}
	return 1;
}
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
	    ll n;
		cin>>n;
		ll arr[n];
		for(int i=0;i<n;i++)
			cin>>arr[i];
		ll low=0,mid,high=pow(10,2)+1;
		while(low<high)
		{
			mid=low+(high-low)/2;
			if(func(mid,arr,n))
				high=mid;
			else
				low=mid+1;
		}
		cout<<low<<"\n";
	}
}
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!
