Naxocist

Cats

May 5th, 2022
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.87 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. using ll = long long;
  5. using pi = pair<int, int>;
  6. using tiii = tuple<int, int, int>;
  7.  
  8. const int N = 2e6 + 3;
  9. int ar[N];
  10.  
  11. int main() {
  12.     // freopen("input.in", "r", stdin);
  13.     int n; scanf("%d", &n);
  14.     int l, r;
  15.     l = r = 0;
  16.     for(int i=0; i<n; ++i) scanf("%d", &ar[i]), r = max(r, ar[i]);
  17.    
  18.     int ans = INT_MAX;
  19.     while(l <= r){ // binary search on capacity
  20.         int md = l + (r - l)/2;
  21.         bool ok = 1;
  22.         vector<int> v;
  23.  
  24.         for(int i=0; i<n; ++i) if(ar[i] > md) v.push_back(ar[i]);
  25.         for(int i=0; i<v.size(); i+=2){
  26.             if(v[i] != v[i+1]){
  27.                 ok = 0;
  28.                 break;
  29.             }
  30.         }
  31.  
  32.         if(ok){
  33.             ans = min(ans, md);
  34.             r = md - 1;
  35.         }else l = md + 1;
  36.     }
  37.  
  38.     printf("%d", ans);
  39.     return 0;
  40. }
  41.  
Advertisement
Add Comment
Please, Sign In to add comment