DÃY CON TĂNG

Cho dãy số nguyên dương \(A = (a_{1},\ a_{2},\ldots,a_{n})\), phần tử \(a_{i}\) có trọng số \(w_{i}\). Một dãy con \((a_{i_{1}},a_{i_{2}},\ldots,a_{i_{k}})\) thỏa mãn:

\[\left\{ \begin{matrix} 1 \leq i_{1} < i_{2} < \ldots < i_{k} \leq n \\ a_{i_{1}} < a_{i_{2}} < \ldots a_{i_{k}} \end{matrix} \right.\ \]

được gọi là một dãy con tăng của dãy \(A\). Chú ý rằng dãy chỉ gồm duy nhất một phần tử của \(A\) cũng được gọi là một dãy con tăng của \(A\).

Yêu cầu: Trong các dãy con tăng của \(A\) hãy tìm ra một dãy có tổng trọng số lớn nhất.

Dữ liệu vào:

+ Dòng 1 chứa số nguyên dương \(n \leq 10^{5}\)

+ Dòng 2 chứa \(n\) số nguyên dương \(a_{1},\ a_{2},\ldots,\ a_{n}\) theo đúng thứ tự đó (\(\forall i:a_{i} \leq 10^{5}\))

+ Dòng 3 chứa \(n\) số nguyên dương \(w_{1},\ w_{2},\ \ldots,\ w_{n}\) theo đúng thứ tự đó (\(\forall i:w_{i} \leq 10^{9})\)

Dữ liệu ra:

+ Ghi 1 số là tổng trọng số lớn nhất của dãy tìm được.

Ví dụ:

Input Output
10
1 2 3 6 4 5 9 6 7 8
1 2 3 12 6 5 8 2 3 2
26

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. sythai (5/8)
  2. npk1605 (5/10)
  3. trungnam (4/4)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]