fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4.  
  5.  
  6.  
  7. int hibit(unsigned int n) {
  8. n |= (n >> 1);
  9. n |= (n >> 2);
  10. n |= (n >> 4);
  11. n |= (n >> 8);
  12. n |= (n >> 16);
  13. return n - (n >> 1);
  14. }
  15.  
  16. ll numbers[40];
  17.  
  18. int main () {
  19. ll t, n;
  20. bool flag;
  21. int cnt;
  22. vector<int> ans;
  23. cin >> t;
  24. while(t--){
  25. flag = false;
  26. cnt = 0;
  27. cin >> n;
  28. for(int i = 1; i <= n; i++){
  29. cin >> numbers[i];
  30. }
  31. for(int i = n - 1; i > 0; i--){
  32. while(numbers[i] >= numbers[i+1]){
  33. numbers[i] >>= 1;
  34. cnt++;
  35. }
  36. if(numbers[i] <= 0 && i != 1) {
  37. ans.push_back(-1);
  38. flag = true;
  39. break;
  40. }
  41. }
  42. if(!flag)
  43. ans.push_back(cnt);
  44. }
  45. for(size_t i = 0; i< ans.size(); i++){
  46. cout << ans[i] << endl;
  47. }
  48.  
  49. return 0;
  50. }
Time limit exceeded #stdin #stdout 5s 5468KB
stdin
1
3
0 0 0
stdout
Standard output is empty