Dãy con tăng trọng số (Chọn ĐTQG Phú Thọ 2020-2021 (ngày 1))
Xem dạng PDF
Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
WISEQ.INP
Output:
WISEQ.OUT
Dạng bài
Ngôn ngữ cho phép
C++, Pascal, PyPy, Python
Xét dãy số nguyên dương ~a_1, a_2, \dots, a_n~ (~1 \le a_i \le n~). Một dãy chỉ số ~1 \le i_1 < i_2 < \dots < i_k \le n~ mà ~a_{i_1} < a_{i_2} < \dots < a_{i_k}~ thì dãy ~a_{i_1}, a_{i_2}, \dots, a_{i_k}~ được gọi là một dãy con tăng của dãy số ~a_1, a_2, \dots, a_n~ với độ dài của dãy là ~k~ và tổng ~a_{i_1}, a_{i_2}, \dots, a_{i_k}~ được gọi là trọng số của dãy con tăng.
Yêu cầu: Cho dãy số nguyên dương ~a_1, a_2, \dots, a_n~ và số nguyên dương ~W~, hãy tìm dãy con tăng của dãy ~a_1, a_2, \dots, a_n~ có độ dài lớn nhất và trọng số không vượt quá ~W~.
Dữ liệu
- Dòng đầu chứa hai số nguyên dương ~n, W~ (~n \le 50000~).
- Dòng thứ hai gồm ~n~ số nguyên dương ~a_1, a_2, \dots, a_n~ (~1 \le a_i \le n~).
Kết quả
Một dòng chứa một số nguyên là độ dài dãy con tăng lớn nhất tìm được thỏa mãn yêu cầu.
Ví dụ
Ví dụ 1
WISEQ.INP
5 10
4 2 3 1 5
WISEQ.OUT
3
Ví dụ 2
WISEQ.INP
5 5
4 2 3 1 5
WISEQ.OUT
2
Giới hạn
Đặt ~S = a_1 + a_2 + \dots + a_n~.
- Subtask 1: ~n \le 20~; ~W \le S~;
- Subtask 2: ~n \le 50~; ~W = S~;
- Subtask 3: ~n \le 50~; ~W \le S~;
- Subtask 4: ~n \le 500~; ~W \le S~;
- Subtask 5: ~n \le 50000~; ~W = S~;
Bình luận