fork download
  1. #include <iostream>
  2. #include<bits/stdc++.h>
  3.  
  4. using namespace std;
  5.  
  6.  
  7.  
  8. int findMin(vector<int>& nums) {
  9. int n = nums.size();
  10. int low=0;
  11. int high=n-1;
  12. while(low<=high){
  13. int mid = low+(high-low)/2;
  14. if(mid>0 && nums[mid-1]>nums[mid]){
  15. return nums[mid];
  16. }
  17. if(mid<n-1 && nums[mid]>nums[mid+1]){
  18. return nums[mid+1];
  19.  
  20. }
  21.  
  22. if(nums[mid]>nums[n-1]){
  23. low=mid+1;
  24. }
  25. else{
  26. high=mid-1;
  27.  
  28. }
  29. }
  30. return nums[0];
  31. }
  32.  
  33.  
  34.  
  35. int main() {
  36. // your code goes here
  37. int n;
  38. cin>>n;
  39. vector<int> nums(n);
  40. for(int i=0;i<n;i++){
  41. cin>>nums[i];
  42.  
  43. }
  44.  
  45. cout<<findMin(nums);
  46.  
  47. return 0;
  48. }
Success #stdin #stdout 0s 5316KB
stdin
5
3 4 5 1 2
stdout
1