Nam là một vận động viên quần vợt chuyên nghiệp. Trong một hệ thống thi đấu quần vợt, người ta tổ chức \(n\) giải đấu vợt, giải đầu tiên được đánh số từ \(1\) đến \(n\). Giải đấu thứ \(i\) được tổ chức vào ngày \(a_i\) (ngày Ban tổ chức ra quyết định là ngày thứ \(1\)) và mỗi vận động viên tham gia giải được cộng điểm thưởng là \(b_i\). Để đảm bảo sức khỏe, huấn luyện viên quyết định hai giải đấu mà Nam tham dự phải cách xa nhau ít nhất là \(k\) ngày (\(|a_i - a_j| \ge k\) nếu Nam tham dự cả giải thứ \(i\) và giải thứ \(j\)).
Yêu cầu: Hãy giúp Nam chọn lựa các giải thi đấu sao cho tổng số điểm thưởng là nhiều nhất.
Input
Dữ liệu vào chứa các dòng dữ liệu sau:
-
Dòng đầu tiên là hai số nguyên \(n\) và \(k\) cách nhau một dấu trống (space) (\(1 \le n \le 10^5\), \(1 \le k \le 100\)).
-
Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) (\(1 \le a_i \le 10^9\)) là ngày thi đấu của các giải \(1, 2, \ldots, n\); mỗi số cách nhau một dấu trống. Dữ liệu cho đảm bảo \(a_1 < a_2 < a_3 < \ldots < a_n\).
-
Dòng thứ ba chứa \(n\) số nguyên \(b_1, b_2, \ldots, b_n\) (\(1 \le b_i \le 10^4\)) là số điểm thưởng của các giải \(1, 2, \ldots, n\); mỗi số cách nhau một dấu trống.
Ràng buộc:
-
Có \(3\) trong \(6\) test (\(50\%\)) thỏa mãn \(n \le 5000\).
-
Có \(3\) trong \(6\) test (\(50\%\)) còn lại thỏa mãn \(5000 < n \le 10^5\).
Output
In ra
- Một số nguyên duy nhất là tổng số điểm thưởng lớn nhất mà Nam có thể có được.
Example
Input:
5 2
1 2 3 4 5
1 5 1 5 1
Output:
10
Note
Các giải đấu diễn ra vào các ngày \(1, 2, 3, 4, 5\) với điểm thưởng \(1, 5, 1, 5, 1\). Hai giải được chọn phải cách nhau ít nhất \(k = 2\) ngày. Nam chọn giải \(2\) (ngày \(2\)) và giải \(5\) (ngày \(5\)): hai ngày cách nhau \(3 \ge 2\), tổng điểm thưởng là \(5 + 5 = 10\). Không có cách chọn nào cho tổng lớn hơn \(10\).
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.