MAXDIFF - Xóa phần tử trong mảng

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Cho một dãy số nguyên ~a~ gồm ~n~ phần tử. Các phần tử trong dãy được sắp xếp theo trình tự tăng dần, tức là ~a_i ≤ a_{i+1}~ với mọi ~1 ≤ i < n~.

Ta định nghĩa độ đẹp của dãy ~a~ là khoảng cách lớn nhất giữa hai phần tử liên tiếp bất kì trong dãy. Nói cách khác, độ đẹp của dãy ~a~ là giá trị ~a_i - a_{i-1}~ lớn nhất với mọi ~2 ≤ i ≤ n~.

Hãy xóa một phần tử bất kì trong dãy ~a~ sao cho độ đẹp của dãy nhận được là lớn nhất có thể.

Input

  • Dòng đầu tiên gồm số nguyên ~n\ (3 ≤ n ≤ 1000)~ - số phần tử trong dãy;
  • Dòng thứ hai gồm ~n~ số nguyên ~a_1, a_2, . . . , a_n\ (1 ≤ a_i ≤ 10^9)~ - số phần tử trong dãy.

Output

  • In ra độ đẹp lớn nhất của dãy ~a~ sau khi xóa đi một phần tử bất kì.

Sample

Input #1
4
2 4 5 6
Output #1
3
Input #2
5
1 2 2 3 4
Output #2
2
Input #3
5
1 1 1 1 1
Output #3
0

Hint

  • Với ví dụ thứ nhất, ta sẽ xóa đi phần tử thứ ~2~ trong dãy ~a~. Dãy sau khi xóa là ~[2, 5, 6]~ và có độ đẹp là ~3~.
  • Với ví dụ thứ hai, ta sẽ xóa đi phần tử thứ ~4~ trong dãy ~a~. Dãy sau khi xóa là ~[1, 2, 2, 4]~ và có độ đẹp là ~2~.
  • Với ví dụ thứ ba, dù xóa đi phần tử nào thì độ đẹp của dãy thu được cũng đều bằng ~0~.

Problem source: Kc97ble - Free Contest


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    thangok  đã bình luận lúc 27, Tháng 4, 2024, 2:14

    include<bits/stdc++.h>

    using namespace std; int main(){ iosbase::syncwith_stdio(false); cin.tie(0);cout.tie(0);

    int n;
    cin>>n;
    int a[n];
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    int maxx=-1e9;
    for(int i=1;i&lt;n-1;i++){
            if(a[i+2]-a[i]>maxx) maxx=a[i+2]-a[i];
    }
    cout<< maxx;
    return 0;
    

    }