fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4.  
  5. ll t, n, res, tmp, arr[100009];
  6.  
  7. ll fast_expo(ll a, ll b){
  8. if(b == 0) return 1;
  9. if(b == 1) return a;
  10.  
  11. else {
  12. tmp = fast_expo(a, b / 2);
  13. res = tmp*tmp;
  14. if(b % 2 == 1){
  15. res *= a;
  16. }
  17. }
  18. return res;
  19. }
  20.  
  21. int main(){
  22. cin >> t;
  23. while(t--){
  24. cin >> n;
  25. for(int i = 0; i < n; i++){
  26. cin >> arr[i];
  27. }
  28.  
  29. ll maks = -1;
  30. for(int i = 1; i < n; i++){
  31. if(arr[i] < arr[i - 1]){
  32. maks = max(maks, arr[i - 1] - arr[i]);
  33. arr[i] = arr[i - 1];
  34. }
  35. }
  36.  
  37. ll pangkat = 0;
  38. while(fast_expo(2, pangkat) < maks){
  39. pangkat++;
  40. }
  41.  
  42. if(maks == -1){
  43. cout << 0 << endl;
  44. } else {
  45. cout << pangkat + 1 << endl;
  46. }
  47. }
  48. }
Success #stdin #stdout 0.01s 5432KB
stdin
Standard input is empty
stdout
Standard output is empty