Vũ khí huỷ diệt

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1300 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Trong thời kỳ Chiến tranh Lạnh, Liên Xô liên tục phát triển các loại vũ khí mới để tăng cường sức mạnh quân sự. Có \(n\) loại vũ khí được đánh số từ \(1\) đến \(n\).

Mỗi loại vũ khí có một khối lượng và một sức mạnh. Stalin muốn lựa chọn một số loại vũ khí để vận chuyển bằng tàu. Con tàu chỉ có thể chở tối đa \(m\) đơn vị khối lượng.

Mỗi loại vũ khí chỉ được chọn nhiều nhất một lần.

Yêu cầu: Hãy tìm tổng sức mạnh lớn nhất có thể đạt được sao cho tổng khối lượng các vũ khí được chọn không vượt quá \(m\).

Input

  • Dòng đầu tiên chứa hai số nguyên \(n\)\(m\).
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \ldots, a_n\), trong đó \(a_i\) là khối lượng của vũ khí thứ \(i\).
  • Dòng thứ ba chứa \(n\) số nguyên \(b_1, b_2, \ldots, b_n\), trong đó \(b_i\) là sức mạnh của vũ khí thứ \(i\).

Output

  • In ra một số nguyên duy nhất là tổng sức mạnh lớn nhất có thể đạt được.

Example

Test 1

Input
5 10
2 3 4 5 6
6 5 8 9 12
Output
20
Note

Có thể chọn các vũ khí có khối lượng 2, 3, 5.

Tổng khối lượng là 2 + 3 + 5 = 10, không vượt quá sức chứa của tàu.

Tổng sức mạnh là 6 + 5 + 9 = 20.

Test 2

Input
6 12
3 4 5 6 7 8
7 9 12 13 15 20
Output
29
Note

Có thể chọn các vũ khí có khối lượng 4, 8.

Tổng khối lượng là 4 + 8 = 12.

Tổng sức mạnh là 9 + 20 = 29.

Scoring

  • Subtask \(1\) (\(20\%\) điểm): \(1 \le n \le 20,\ 1 \le m \le 100\).
  • Subtask \(2\) (\(30\%\) điểm): \(1 \le n \le 100,\ 1 \le m \le 10^4\).
  • Subtask \(3\) (\(50\%\) điểm): \(1 \le n \le 1000,\ 1 \le m \le 10^5\).

Bình luận (2)

Mới nhất
Tải bình luận...