Có n bông hoa nằm trên một hàng từ trái sang phải. Hoa thứ i có chiều cao hi và giá trị thẩm mỹ bi. Các chiều cao đôi một khác nhau.
Bạn được giữ lại một số bông hoa và bỏ các bông còn lại. Những bông được giữ phải có chiều cao tăng nghiêm ngặt khi đọc từ trái sang phải. Hãy tìm tổng giá trị thẩm mỹ lớn nhất có thể giữ lại.
Input
Dòng đầu chứa số nguyên n.
Dòng thứ hai chứa n số nguyên h1,h2,…,hn.
Dòng thứ ba chứa n số nguyên b1,b2,…,bn.
Output
In tổng giá trị thẩm mỹ lớn nhất của một dãy hoa hợp lệ.
Constraints
1≤n≤2⋅105.
1≤hi≤n và các hi đôi một khác nhau; vì vậy dãy chiều cao là một hoán vị của 1,…,n.
1≤bi≤109.
Đáp án nằm trong đoạn từ 1 đến n⋅109 (không vượt quá 2⋅1014), nên có thể lớn hơn giới hạn số nguyên 32-bit.
Scoring
Subtask 1 (50% số điểm): n≤2000.
Subtask 2 (50% số điểm): Không có giới hạn bổ sung.
Example
Test 1
Input
6
4 1 5 2 6 3
8 10 4 20 7 30
Output
60
Giải thích: Giữ các hoa ở vị trí 2,4,6 cho dãy chiều cao 1,2,3 và tổng giá trị 10+20+30=60. Tổng tốt nhất của một dãy hợp lệ kết thúc lần lượt tại sáu vị trí là 8,10,14,30,37,60, nên không lựa chọn nào có tổng lớn hơn 60.
Lời giải tóm tắt
Phân tích: Gọi dp[i] là tổng giá trị lớn nhất của một dãy hợp lệ kết thúc tại hoa i. Khi đó dp[i] = b_i + max(dp[j]) trên mọi j < i có h_j < h_i. Phần khó là lấy nhanh giá trị lớn nhất trên miền chiều cao nhỏ hơn h_i.
Thuật toán: Duyệt hoa từ trái sang phải. Fenwick tree tại trục chiều cao lưu phép max: truy vấn tiền tố h_i - 1 cho tổng tốt nhất của mọi dãy kết thúc ở chiều cao nhỏ hơn, rồi cộng b_i và cập nhật điểm h_i. Vì cây chỉ chứa các hoa đã duyệt, điều kiện thứ tự vị trí được bảo toàn tự động.
Chứng minh tính đúng đắn: Mọi dãy hợp lệ kết thúc ở i hoặc chỉ gồm hoa i, hoặc có hoa cuối trước đó mang chiều cao nhỏ hơn h_i; truy vấn Fenwick xét đúng toàn bộ các khả năng này. Nối hoa i vào dãy do truy vấn chọn luôn hợp lệ về cả vị trí lẫn chiều cao. Do đó giá trị cập nhật bằng đúng dp[i]; lấy lớn nhất qua mọi i cho tối ưu toàn cục.