fork(1) download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6. int jump = 1;
  7. int pausejump = 0;
  8. int n = 0;
  9. cin >> n;
  10. int *strarr = new int[n];
  11. for (int i = 0; i < n; i++) {
  12. int num;
  13. cin >> num;
  14. strarr[i] = num;
  15. }
  16. if (strarr[0] > strarr[1]) {
  17. cout << 0;
  18. } // 0 1 2 3 4 5 6 7 8 9
  19. if (strarr[n - 2] < strarr[n - 1]) { // 1 2 3 4 5 6 7 6 5 4
  20. cout << n - 1;
  21. }
  22. if ((strarr[0] < strarr[1]) && (strarr[n - 2] > strarr[n - 1])) {
  23. for (int i = 1; i < n; i++) {
  24. if (strarr[jump + pausejump] < strarr[jump + pausejump + 1]) {
  25. if ((jump * 2 + pausejump) < (n - 1)) {
  26. jump = jump * 2;
  27. } else {
  28. pausejump = pausejump + jump; //"прослойка" с которой начинается новый цикл
  29. jump = 1;
  30. }
  31. } else if (strarr[jump + pausejump] > strarr[jump + pausejump + 1]) {
  32. jump = jump / 2;
  33. pausejump = pausejump + jump;
  34. jump = 1;
  35. } else if ((strarr[jump + pausejump] > strarr[jump + pausejump + 1]) &&
  36. (strarr[jump + pausejump] > strarr[jump + pausejump - 1])) {
  37. cout << jump + pausejump;
  38. break;
  39. }
  40. }
  41.  
  42. }
  43. delete[] strarr;
  44. cin.get();
  45. cin.get();
  46. return 0;
  47. }
  48.  
Success #stdin #stdout 0s 16064KB
stdin
10
1 2 3 4 5 6 7 6 5 4
stdout
Standard output is empty