fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int findMin(vector<int>& nums) {
  4.  
  5. int l = 0, r = nums.size() - 1;
  6.  
  7. while (l < r) {
  8.  
  9. int mid = l + (r - l) / 2;
  10.  
  11. if (nums[mid] < nums[r])
  12. r = mid;
  13.  
  14. else if (nums[mid] > nums[r])
  15. l = mid + 1;
  16.  
  17. else
  18. r--;
  19. }
  20.  
  21. return l;
  22. }
  23. int main() {
  24. int n;
  25. cin>>n;
  26. vector<int>arr(n);
  27. for(int i = 0;i < n;i++){
  28. cin>>arr[i];
  29. }
  30. cout<<findMin(arr);
  31. }
Success #stdin #stdout 0.01s 5304KB
stdin
4

4 3 1 2
stdout
2