Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | None | 0 0
  1. bool lft(ld x, ld R){
  2.     ll l, r, m;
  3.     l = 1; r = n;
  4.     while(r - l > 1){
  5.         m = (r + l) / 2;
  6.         if(arr[m] >= x){
  7.             r = m;
  8.         }else{
  9.             l = m;
  10.         }
  11.     }
  12.  
  13.     ld u = x - R;
  14.  
  15.  
  16.     if(u > arr[l]){
  17.         return false;
  18.     }
  19.     for(int i = l; i >= 2; i--){
  20.         if(arr[i - 1] < u){
  21.             R = R - 1.0;
  22.             u = arr[i] - R;
  23.             if(arr[i - 1] < u){
  24.                 return false;
  25.             }
  26.         }
  27.     }
  28.     return true;
  29. }
  30.  
  31. bool right(ld x, ld R){
  32.     ll l, r, m;
  33.     l = 1; r = n;
  34.     while(r - l > 1){
  35.         m = (r + l) / 2;
  36.         if(arr[m] >= x){
  37.             r = m;
  38.         }else{
  39.             l = m;
  40.         }
  41.     }
  42.  
  43.  
  44.     ld u = x + R;
  45.     if(u < arr[l]){
  46.         return false;
  47.     }
  48.     for(int i = l; i <= n - 1; i++){
  49.         if(arr[i + 1] > u){
  50.             R = R - 1.0;
  51.             u = arr[i] + R;
  52.             if(arr[i + 1] > u){
  53.                 return false;
  54.             }
  55.         }
  56.     }
  57.     return true;
  58. }
  59.  
  60.  
  61. bool check(ld R){
  62.     ld l = 0, r = arr[n], m;
  63.     m = (l + r) / 2;
  64.     if(!lft(m, R) && !right(m, R)){
  65.         return false;
  66.     }
  67.  
  68.     for(int i = 1; i <= 50; i++){
  69.  
  70.         m = (l + r) / 2;
  71.         if(right(m, R)){
  72.             r = m;
  73.         }else{
  74.             l = m;
  75.         }
  76.     }
  77.  
  78.     if(lft(l, R) && right(r, R)){
  79.         return true;
  80.     }else{
  81.         return false;
  82.     }
  83.  
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement