fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int n;
  5. int a[1004];
  6. int l = 1001, r = 0;
  7.  
  8. bool check(int res) {
  9. int cnt = 0;
  10. for (int i = 0; i < n; i++) {
  11. if (a[i+1] - a[i] > res) {
  12. if (a[i+2] - a[i] <= res) {
  13. if (cnt) return false;
  14. else cnt++, i++;
  15. }
  16. else return false;
  17. }
  18. }
  19. return true;
  20. }
  21.  
  22. int main() {
  23. cin >> n;
  24. for (int i = 1; i <= n; ++i) {
  25. cin >> a[i];
  26. r = max(r, a[i]);
  27. l = min(l, a[i]);
  28. }
  29. a[0] = a[2];
  30. a[n+1] = a[n-1];
  31. while (l < r) {
  32. int mid = (l + r) >> 1;
  33. if (check(mid)) r = mid;
  34. else l = mid + 1;
  35. }
  36. cout << l << endl;
  37.  
  38. }
Success #stdin #stdout 0s 3464KB
stdin
Standard input is empty
stdout
1001