Điều hướng chính

Nhắn tin NQ Coding

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập daututaichinhchuyentinpbcnghea

Đầu tư tài chính

Dễ Cài đặt

  • 100p Điểm
  • 1.0s Thời gian
  • 256M Bộ nhớ
  • 100% Tỉ lệ AC
  • 1 Số AC

Bố bạn Hùng là một nhà đầu tư trong một quỹ tài chính. Chiến lược đầu tư của bố bạn là chọn đúng \(k\) thời điểm để đầu tư từ chuỗi dữ liệu của thị trường gồm \(n\) ngày.

Mỗi ngày có một chỉ số thị trường là \(a_i\). Bố bạn đã xây dựng một chiến lược phân bổ trọng số \(w_1, w_2, \dots, w_k\) tương ứng với từng lần đầu tư. Hùng mong muốn giúp bố của mình lựa chọn \(k\) ngày khác nhau theo đúng thứ tự thời gian để đầu tư sao cho tổng lợi nhuận

\[ S = w_1 × a_{i_1} + w_2 × a_{i_2} + … + w_k × a_{i_k} \]

là lớn nhất, với \(1 \le i_1 < i_2 < \dots < i_k \le n\).

Ngoài ra, Hùng cũng muốn biết có bao nhiêu cách chọn \(k\) ngày để đạt được tổng lợi nhuận lớn nhất đó.

Yêu cầu. Hãy tính tổng lợi nhuận lớn nhất và số cách chọn đạt được giá trị đó.

Input

  • Dòng đầu tiên chứa hai số nguyên dương \(n, k\) (\(1 \le n \le 10^5\), \(1 \le k \le 100\), \(k \le n\)).
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\) (\(a_i \le 10^9\)).
  • Dòng thứ ba chứa \(k\) số nguyên \(w_1, w_2, \dots, w_k\) (\(w_i \le 10^6\)).

Output

Ghi ra hai dòng:

  • dòng thứ nhất là tổng lợi nhuận lớn nhất;
  • dòng thứ hai là số cách chọn đạt được tổng lợi nhuận lớn nhất, lấy dư theo \(10^9 + 7\).

Input

%
5 3
2 8 6 3 3
5 2 6

Output

%
70
2

Notes

Có hai cách chọn các ngày là \((2, 3, 4)\) hoặc \((2, 3, 5)\), đều cho lợi nhuận:

\[ 5 × 8 + 2 × 6 + 6 × 3 = 70. \]

Scoring

  • (20%) \(n \le 10^2\), \(k = 1\).
  • (40%) \(n \le 10^3\).
  • (40%) \(n \le 10^5\), \(k \le 100\).

Bình luận

Chưa có bình luận nào.