➤ 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!!