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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.