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
Đăng nhập để bình luận
Chưa có bình luận nào.