Kế hoạch chọn ô trên bàn cờ

Xem dưới dạng PDF

Gửi bài giải

Điểm: 20
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Kiểu bài tập

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

Không có ý kiến tại thời điểm này.