Dãy con tăng trọng số

View as PDF

Submit solution

Points: 200.00 (partial)
Time limit: 1.0s
Memory limit: 1024M
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

Xét dãy số nguyên dương ~𝑎_1~, ~𝑎_2~, … , ~𝑎_𝑛~ (1 ≤ ~𝑎_𝑖~ ≤ ~𝑛~). Một dãy chỉ số 1 ≤ ~𝑖_1~ < ~𝑖_2~ < ⋯ < ~𝑖_𝑘~ ≤ ~𝑛~ mà ~𝑎_{𝑖1}~ < ~𝑎_{𝑖2}~ < ⋯ < ~𝑎_{𝑖k}~ thì dãy ~𝑎_{𝑖1}~ ,<~𝑎_{𝑖2}~, ......,~𝑎_{𝑖k}~ được gọi là một dãy con tăng của dãy ~𝑎_1~, ~𝑎_2~, … , ~𝑎_𝑛~ và tổng ~𝑎_{𝑖1}~ + ~𝑎_{𝑖2}~ + ⋯ +~𝑎_{𝑖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 ~𝑎_1~, ~𝑎_2~, … , ~𝑎_𝑛~ và số nguyên dương ~𝑊~, hãy tìm dãy con tăng của dãy ~𝑎_1~, ~𝑎_2~, … , ~𝑎_𝑛~ có độ dài lớn nhất và trọng số không vượt quá ~𝑊~.

Input:

  • Dòng đầu chứa hai số nguyên dương ~𝑛~, ~𝑊~;
  • Dòng thứ hai gồm ~𝑛~ số nguyên dương ~𝑎_1~, ~𝑎_2~, … , ~𝑎_𝑛~ .

Output:

  • Gồm một dòng chứa một số là độ dài dãy con tăng lớn nhất tìm được thỏa mãn.
Vi du:
Input 1
5 10
4 2 3 1 5
Ouput 1
3
Input 2
5 5
4 2 3 1 5
Ouput 2
2

Gọi ~𝑆~ = ~𝑎_1~ + ~𝑎_2~ +… + ~𝑎_𝑛~

Subtask 1: ~𝑛~ ≤ 20; ~𝑊~ ≤ ~𝑆~; Subtask 2: ~𝑛~ ≤ 50; ~𝑊~ = ~𝑆~; Subtask 3: ~𝑛~ ≤ 50; ~𝑊~ ≤ ~𝑆~; Subtask 4: ~𝑛~ ≤ 500; ~𝑊~ ≤ ~𝑆~; Subtask 5: ~𝑛~ ≤ 50000; ~𝑊~ = ~𝑆~;


Comments

Please read the guidelines before commenting.


There are no comments at the moment.