fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int check(vector<int>&a, int n, int size){
  6. int cnt=0;
  7. int mx =-1;
  8. for(int i=0;i<n;i++){
  9. if(a[i]>=size) cnt++;
  10. else cnt=0;
  11.  
  12. mx=max(mx, cnt);
  13. }
  14. return mx>=size;
  15. }
  16.  
  17. int main()
  18. {
  19. int n; cin>>n;
  20.  
  21. vector<int>a(n);
  22. for(int &i:a) cin>>i;
  23.  
  24. int lo = 1;
  25. int hi = 1e9;
  26. int ans = -1;
  27.  
  28. while(lo<=hi){
  29. int mid = lo + (hi-lo)/2;
  30.  
  31. if(check(a, n, mid)){
  32. ans = mid;
  33. lo = mid + 1;
  34. }else{
  35. hi = mid - 1;
  36. }
  37. }
  38.  
  39. cout<<ans<<endl;
  40.  
  41. return 0;
  42. }
Success #stdin #stdout 0.01s 5280KB
stdin
4
1 2 3 4
stdout
2