4 tháng trước

Bài code để tham khảo

include <stdio.h>

int main() {

int n;
if (scanf("%d", &n) != 1) return 0;

long long a[1005];
for (int i = 0; i < n; i++) {
    scanf("%lld", &a[i]);
}

long long ht[1005], hp[1005];
long long mt[1005], mp[1005];

for (int i = 1; i < n; i++) {
    ht[i] = a[i] - a[i - 1];
}

mt[1] = ht[1];
for (int i = 2; i < n; i++) {
    mt[i] = (ht[i] > mt[i - 1]) ? ht[i] : mt[i - 1];
}

mp[n - 1] = ht[n - 1];
for (int i = n - 2; i >= 1; i--) {
    mp[i] = (ht[i] > mp[i + 1]) ? ht[i] : mp[i + 1];
}

long long max = 0;

long long xd = mp[2];
if (xd > max) max = xd;

long long xc = mt[n - 2];
if (xc > max) max = xc;

for (int i = 1; i < n - 1; i++) {
    long long hm = a[i + 1] - a[i - 1];
    long long mht = hm;

    if (i - 1 >= 1 && mt[i - 1] > mht) {
        mht = mt[i - 1];
    }
    if (i + 2 < n && mp[i + 2] > mht) {
        mht = mp[i + 2];
    }

    if (mht > max) {
        max = mht;
    }
}

printf("%lld\n", max);
return 0;

}

Trả lời 0 Phản hồi

Bạn cần đăng nhập để tham gia thảo luận

Đăng nhập ngay