nhatnguyen832011
Rating
-
Bài tập
0
Điểm
0
Rating #
-
Điểm #
30801
Giới thiệu
def find_max_triplet_value(n, arr):
# Tạo mảng max_left để lưu giá trị lớn nhất đến trước chỉ số j
max_left = [0] * n
max_left[0] = arr[0]
# Tính max_left cho từng j
for i in range(1, n):
max_left[i] = max(max_left[i-1], arr[i])
# Tạo mảng max_right để lưu giá trị lớn nhất từ chỉ số j trở đi
max_right = [0] * n
max_right[n-1] = arr[n-1]
# Tính max_right cho từng j
for i in range(n-2, -1, -1):
max_right[i] = max(max_right[i+1], arr[i])
# Duyệt qua mỗi j và tính giá trị tối đa của a[i] - a[j] + a[k]
max_value = float('-inf')
for j in range(1, n-1):
current_value = max_left[j-1] - arr[j] + max_right[j+1]
max_value = max(max_value, current_value)
return max_value
Đọc dữ liệu vào
n = int(input()) # số lượng phần tử
arr = list(map(int, input().split())) # danh sách các phần tử
Tính kết quả
result = find_max_triplet_value(n, arr)
print(result)