Đ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 nguoiolaimua

Người ở lại mua vé

Dễ Quy hoạch độngTham lam

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

Có \(N\) người xếp hàng mua vé, đánh số \(1..N\) theo thứ tự trong hàng. Mỗi người cần một vé và người bán cho phép mỗi người mua tối đa hai vé; vì vậy một số người có thể rời hàng và nhờ người đứng ngay trước mình mua hộ (mỗi người chỉ mua hộ được tối đa một người và người nhờ hộ thì không mua hộ ai).

Người \(i\) tự mua vé cho mình mất \(t_i\) giây; nếu người \(i\) mua thêm cho người \(i+1\) thì cả hai được phục vụ trong \(r_i\) giây.

Hãy chọn cách phân công sao cho tổng thời gian phục vụ là nhỏ nhất và in ra danh sách những người ở lại hàng (những người không nhờ ai mua hộ).

Nếu có nhiều phương án tối ưu, chọn phương án theo quy tắc sau: chia hàng thành các nhóm liên tiếp (nhóm 1 người hoặc nhóm 2 người, người đầu nhóm là người ở lại); xét dãy kích thước các nhóm từ đầu hàng, chọn phương án có dãy này nhỏ nhất theo thứ tự từ điển (nhóm 1 người được ưu tiên hơn nhóm 2 người tại vị trí đầu tiên hai phương án khác nhau).

Input

  • Dòng đầu chứa \(N\).
  • Dòng thứ hai chứa \(N\) số nguyên \(t_1, \dots, t_N\).
  • Dòng thứ ba chứa \(N-1\) số nguyên \(r_1, \dots, r_{N-1}\) (không có nếu \(N = 1\)).

Output

  • Dòng thứ nhất: số người ở lại mua vé.
  • Dòng thứ hai: số thứ tự những người ở lại, theo thứ tự tăng dần, cách nhau một dấu cách.

Constraints

  • \(1 \le N \le 60000\)
  • \(1 \le t_i, r_i \le 30000\)

Sample Input

6
3 6 4 7 2 5
5 9 6 8 4

Sample Output

3
1 3 5

Explanation

Nhóm \((1,2), (3,4), (5,6)\) mất \(5+6+4 = 15\) giây, là nhỏ nhất; những người ở lại là \(1, 3, 5\).

Bình luận

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