

Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
`*` QHĐ cơ bản: Để `a_i + a_j - a_k` lớn nhất thì `a_i + a_j` phải lớn nhất. Vậy điều ta cần tìm là với mỗi vị trí `j`, ta sẽ tìm ra được tổng `a_i + a_j` lớn nhất tính từ `1 -> j` `( i < j)`. Rồi cập nhật biến res để lấy GTLN `a_i + a_j - a_k`.
$\texttt{C++}$
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
long long n, res = 0;
cin >> n;
vector<long long> a(n + 1), f(n + 1), d(n + 1,0);
for (int i = 1; i <= n; i++)
{
cin >> a[i];
}
f[0] = d[0] = INT_MIN;
for (int i = 1; i <= n; i++)
{
f[i] = max(f[i - 1], a[i]);
}
for (int i = 1; i <= n; i++)
{
d[i] = max(d[i - 1], a[i] + f[i - 1]);
}
for (int i = 1; i <= n; i++)
{
res = max(res, d[i - 1] - a[i]);
}
cout << res;
return 0;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin
203
3812
89
khét
2707
41698
2042
:)) bài này k khó đâu, có mấy bài t thấy khó cực, chứ cái này chỉ là bước đầu QHĐ à
203
3812
89
ê chỉ thêm câu QHĐ nx đi
2707
41698
2042
Câu lào :v, nếu đc để mai đk, tại h t định đi ngủ r nè :))), mai đi học nữa
1261
88
1271
bn khoidao5 oi bn co the vao nhom mik cay giup dc ko ak Mong bn vao ak
2707
41698
2042
Mình không nhé bạn, mình đã có nhóm riêng và hiện mình rời làm thử thách.
1261
88
1271
oki