

làm c++ hoặc python
Ánh muốn thực hiện một cuộc hành trình xuyên qua các thành phố trên đất nước MTTN. Đất nước MTTN có �n thành phố nằm dọc theo tuyến đường sắt chính mình và các thành phố này được đánh số từ 11 đến �n.
Ánh lên kế hoạch cho chuyến hành trình của mình như sau. Đầu tiên, cô ấy sẽ chọn một thành phố �1c1 để bắt đầu cuộc hành trình của mình. Cô ấy sẽ đến thăm thành phố đó và sau đó đi đến một thành phố �2>�1c2>c1, sau đó đến một thành phố khác �3>�2,…,c3>c2,…, cho đến khi cô chọn kết thúc cuộc hành trình của mình ở thành phố nào đó ��>��−1cm>cm−1. Vì vậy, trình tự các thành phố Ánh sẽ ghé thăm là �1,�2,…,��c1,c2,…,cm thỏa mãn ��>��−1;∀�∈�,2≤�≤�ci>ci−1;∀i∈N,2≤i≤m.
Thành phố thứ i có vẻ đẹp là ��bi. Nếu Ánh đang ở thành phố thứ �i thì Ánh chỉ có thể mua được vé tàu đến thành phố thứ �j thỏa mãn �>�,�−�=��−��j>i,j−i=bj−bi. Tuy nhiên, do Ánh là hành khách nổi tiếng của đất nước MTTN nên Ánh được công ty đường sắt tặng �k vé tàu có thể di chuyển từ thành phố �i đến bất kỳ thành phố �>�j>i nào.
Ví dụ, nếu �=9,�=1n=9,k=1 và �=[1,2,3,4,6,6,8,9]b=[1,2,3,4,6,6,8,9], Ánh có thể có một số cách có thể lập kế hoạch cho chuyến đi của mình:
Do đây là lần đầu tiên thực hiện một cuộc hành trình xuyên qua các thành phố trên đất nước MTTN nên Ánh muốn hành trình của mình đẹp nhất có thể. Giá trị vẻ đẹp của hành trình là tổng giá trị vẻ đẹp của tất cả các thành phố đã ghé thăm. Bạn hãy giúp cô ấy tìm ra giá trị vẻ đẹp lớn nhất của cuộc hành trình nhé?
Input
Output
Scoring
Example
Test 1
Input
8 1 1 2 3 4 6 6 8 9
Output
33
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
`\color{pink}{#Bơ}`
#include <bits/stdc++.h>
#define f(i,a,b) for(int i=a;i<b;++i)
using namespace std;
const int N=4e5+5;
int n,k,a[N],d[N][31],r;
unordered_map<int,int> m[31];
int main(){
ios::sync_with_stdio(0);cin.tie(0);
cin>>n>>k;
f(i,0,n) cin>>a[i];
f(i,0,n){
f(j,0,k+1){
int x=i-a[i];
if(m[j].count(x))
d[i][j]=max(d[i][j],m[j][x]+a[i]);
if(j>0 && m[j-1].size())
d[i][j]=max(d[i][j],(*max_element(m[j-1].begin(),m[j-1].end(),[](auto &x,auto &y){return x.second<y.second;})).second+a[i]);
d[i][j]=max(d[i][j],a[i]);
m[j][x]=max(m[j][x],d[i][j]);
r=max(r,d[i][j]);
}
}
cout<<r;
}
`\color{#1AD5F7}{꧁⋆⟡H}\color{#1AD5F7}{a}\color{#4DA6E6}{r}\color{#668EDD}{i}\color{#8077D5}{i}\color{#995FCD}{i}\color{#EA2F90}{⟡⋆꧂}`
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin
41
1887
16
ko cần nx bạn ơi hết tg r