Bài 4: Đầu tư chứng khoán (TS10 Nghệ An - 2026)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Pascal, Python
Điểm: 1800 Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Anh Bình là một nhà đầu tư tham gia giao dịch trên sàn chứng khoán điện tử. Trên sàn đang niêm yết \(n\) mã giao dịch được sắp xếp thành một hàng và đánh số thứ tự từ \(1\) đến \(n\). Mã giao dịch thứ \(i\) được niêm yết với một giá trị lợi nhuận \(a_i\). Nhà đầu tư được hệ thống cấp phát \(m\) mã lệnh đánh số từ \(1\) đến \(m\). Mã lệnh thứ \(j\) chứa một số nguyên dương \(b_j\).

Anh Bình thực hiện lần lượt \(m\) lệnh tương ứng với các mã đã nhận, ở lượt thứ \(j\) anh chỉ được thực hiện một trong hai cách:

  • Bỏ qua không sử dụng mã lệnh thứ \(j\);
  • Dùng mã lệnh thứ \(j\) để chọn \(b_j\) mã giao dịch liên tiếp từ mã thứ \(i\) (\(1 \le i \le n\)), nếu đoạn \(i, i+1, \dots, i+b_j-1\) chưa từng được thực hiện trước đó.

Mỗi mã giao dịch chỉ được thực hiện nhiều nhất một lần. Anh Bình đã có chiến lược lựa chọn các mã lệnh một cách tối ưu nên thu được tổng lợi nhuận lớn nhất khi kết thúc giao dịch.

Yêu cầu: Hãy tìm ra tổng lợi nhuận lớn nhất của anh Bình khi kết thúc giao dịch.

Input

  • Dòng đầu tiên ghi hai số nguyên dương \(n, m\) (\(1 \le n \le 10^5, 1 \le m \le 10^2\));
  • Dòng thứ hai ghi \(n\) số nguyên dương \(a_1, a_2, \dots, a_n\) (\(a_i \le 10^8\)) là giá trị lợi nhuận;
  • Dòng thứ ba ghi \(m\) số nguyên dương \(b_1, b_2, \dots, b_m\) (\(b_j \le 10^5\)) là giá trị trên mã lệnh.

Output

  • Ghi ra một số nguyên duy nhất là tổng lợi nhuận lớn nhất anh Bình đạt được.

Example

Test 1

Input
7 1
1 6 3 4 2 5 7
2
Output
12
Note

Anh Bình chỉ chọn 1 lệnh gồm 2 phần tử liên tiếp, có 1 dãy giá trị \((5, 7)\) cho tổng lợi nhuận lớn nhất là: \(12\).

Test 2

Input
8 2
7 1 8 5 1 6 2 4
2 1
Output
19
Note

Anh Bình có 2 lượt chọn:

  • Lượt 1: Chọn dãy 2 phần tử liên tiếp có giá trị \((8, 5)\) được tổng lợi nhuận là: \(13\);
  • Lượt 2: Chọn 1 phần tử có giá trị: \(6\);
    Tổng lợi nhuận lớn nhất 2 lượt chọn là: \(19\).

Scoring

  • \(30\%\) số test thỏa mãn: \(m = 1, 1 \le n \le 10^5\).
  • \(20\%\) số test thỏa mãn: \(m = 2, 1 < n \le 10^5\).
  • \(50\%\) số test thỏa mãn: \(2 < m \le 10^2, 10^3 < n \le 10^5\).

Bình luận (1)

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

Kỳ thi: