#126. Điều phối sản xuất gia công (PROD)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: Trình chấm ngoài
Đưa lên bởi: Trùm CUỐI

Đề bài

Một nhà máy nhận được đơn đặt hàng cho n sản phẩm. n sản phẩm này lần lượt được gia công tại hai phân xưởng A và B, và bắt buộc phải được gia công tại phân xưởng A trước rồi mới được chuyển sang phân xưởng B.

Thời gian gia công sản phẩm i tại phân xưởng A và B lần lượt là A_i, B_i . Hãy sắp xếp thứ tự gia công cho n sản phẩm này sao cho tổng thời gian gia công là ngắn nhất.

Thời gian gia công ở đây được hiểu là: khoảng thời gian từ lúc bắt đầu gia công sản phẩm đầu tiên cho đến khi tất cả các sản phẩm đều đã hoàn thành gia công ở cả hai phân xưởng A và B.

Dữ liệu:

  • Dòng đầu tiên chứa một số nguyên n , biểu thị số lượng sản phẩm.
  • Dòng tiếp theo chứa n số liệu, biểu thị thời gian gia công tại phân xưởng A cho từng sản phẩm.
  • Dòng cuối cùng chứa n số liệu, biểu thị thời gian gia công tại phân xưởng B cho từng sản phẩm.

Kết quả:

  • Dòng đầu tiên xuất ra một số, là thời gian gia công ít nhất.
  • Dòng thứ hai xuất ra thứ tự gia công các sản phẩm để đạt được thời gian tối thiểu đó (in ra chỉ số của sản phẩm).

Ví dụ:

Dữ liệu:

5
3 5 8 7 10
6 2 1 4 9

Kết quả:

34
1 5 4 2 3

Giới hạn: 0 < n < 1000 , 1 \le A_i, B_i \le 350 .