Có một bàn cờ chỉ gồm một hàng duy nhất gồm \(n\) ô, được đánh số từ \(1\) đến \(n\). Mỗi ô có một giá trị điểm số \(a_i\).
Bạn cần lựa chọn một số ô (có thể không chọn ô nào), theo thứ tự từ trái sang phải. Với mỗi ô được chọn, có thể xảy ra hiệu ứng loại bỏ: nếu chọn ô thứ \(i\) thì có thể khiến các ô đã chọn trước đó bị hủy bỏ (trở lại trạng thái chưa chọn), tùy theo giá trị \(b_i\) tại ô đó.
Cụ thể:
- Mỗi khi chọn một ô \(i\), sẽ cố gắng loại bỏ \(b_i\) ô đã chọn gần nhất trước đó (nếu có). Nếu số ô đã chọn trước đó ít hơn \(b_i\), thì không có ô nào bị loại bỏ và ô \(i\) cũng không bị loại.
- Bạn không được quay lại chọn lại các ô đã bỏ qua trước đó.
Yêu cầu
- Tìm một cách chọn các ô (từ trái sang phải) sao cho tổng điểm các ô được chọn sau khi tính toán loại bỏ là lớn nhất.
Dữ liệu vào
- Dòng đầu chứa một số nguyên \(n\) (\(1 \le n \le 3000\)) - số ô trên bàn cờ.
- Dòng tiếp theo gồm \(n\) số nguyên \(a_1, a_2, \dots, a_n\) - điểm số của từng ô (\(|a_i| \le 10^8\)).
- Dòng tiếp theo gồm \(n\) số nguyên \(b_1, b_2, \dots, b_n\) - số lượng ô cần loại bỏ khi chọn ô \(i\) (\(0 \le b_i \le n\)).
Dữ liệu ra
- Gồm ba dòng:
- Dòng đầu: một số nguyên không âm \(k\) — số ô bạn chọn.
- Dòng thứ hai: \(k\) số nguyên là chỉ số các ô được chọn theo thứ tự từ nhỏ đến lớn (tức theo thứ tự gốc bên trái sang phải). Nếu không chọn ô nào, in dòng rỗng.
- Dòng thứ ba: tổng điểm cuối cùng thu được từ các ô còn lại sau khi áp dụng các quy tắc loại bỏ.
Input 1
6
1 1 4 5 1 4
1 0 0 2 1 1
Output 1
4
1 2 3 4
9
Giải thích
- Chọn ô 1 → không bị xóa vì trước đó chưa có ô nào.
- Chọn ô 2 → \(b=0\) → không ảnh hưởng.
- Chọn ô 3 → \(b=0\) → không ảnh hưởng.
- Chọn ô 4 → \(b=2\) → xóa ô 1 và 2.
- Tổng còn lại: \(4 + 5 = 9\)
Ràng buộc dữ liệu
- \(1 \le n \le 3000\)
- \(|a_i| \le 10^8\)
- \(0 \le b_i \le n\)
Phân bổ điểm
Subtask | Giới hạn | Tính chất đặc biệt | Điểm |
---|---|---|---|
0 | \(n \le 20\) | Không có | 25 |
1 | \(n \le 500\) | Không có | 20 |
2 | \(n \le 3000\) | \(b_i > 0\) | 5 |
3 | \(n \le 3000\) | \(b_i = 0\) | 5 |
4 | \(n \le 3000\) | \(a_i = 1\) | 15 |
5 | \(n \le 3000\) | Không có | 30 |
Nhận xét