#pragma GCC optimize("03")
#include<bits/stdc++.h>
#define nmax 10000007
#define nmax2 1000006
#define nmax3 100005
#define mod 1000000007
#define fi first
#define se second
#define ma -1e18
#define mi 1e18
#define ll long long
using namespace std;
void start()
{
// freopen(".inp","r",stdin);
// freopen(".out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
}
ll qhd(ll n, ll k, const vector<int>& ngay, const vector<int>& tien) {
vector<int> dp(n, 0);
dp[0] = tien[0];
for (int i = 1; i < n; i++) {
dp[i] = tien[i];
for (int j = i - 1; j >= 0; j--) {
if (ngay[i] - ngay[j] >= k) {
dp[i] = max(dp[i], tien[i] + dp[j]);
break;
}
}
dp[i] = max(dp[i], dp[i - 1]);
}
return dp[n - 1];
}
int main() {
ll n, k;
cin >> n >> k;
vector<int> ngay(n);
for (int i = 0; i < n; i++) {
cin >> ngay[i];
}
vector<int> tien(n);
for (int i = 0; i < n; i++) {
cin >> tien[i];
}
cout << qhd(n, k, ngay, tien );
}/*ta sử dụng một hàm `qhd` để tính tổng số tiền thưởng nhiều nhất mà Nam có thể có được. Trong hàm này, ta sử dụng phương pháp quy hoạch động để tính toán. Ta duyệt qua từng giải đấu và lựa chọn giải đấu trước đó mà cách giải đấu hiện tại ít nhất là k ngày. Ta cập nhật tổng số tiền thưởng nếu có giải đấu trước đó tốt hơn để có tổng tiền thưởng lớn nhất. Cuối cùng, trả về tổng số tiền thưởng lớn nhất.*/
Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!
Lớp 6 - Là năm đầu tiên của cấp trung học cơ sở, chúng ta được sống lại những kỷ niệm như ngày nào còn lần đầu đến lớp 1, được quen bạn mới, ngôi trường mới, một tương lai mới. Hãy tận dụng cơ hội này để làm quen và hòa nhập thật tốt!
Copyright © 2024 Giai BT SGK