Lập lịch sửa chửa ô tô

Xem PDF




Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1200 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Một cơ sở sửa chữa ô tô có nhận \(n\) chiếc xe để sửa. Do các nhân viên làm việc quá lười nhác nên đã đến hạn trả cho khách hàng mà vẫn chưa tiến hành sửa được chiếc xe nào. Theo hợp đồng đã ký kết từ trước, nếu bàn giao xe thứ \(i\) quá hạn ngày nào thì sẽ phải trả thêm một khoản tiền phạt là \(A[i]\).

Ông chủ cơ sở sửa chữa quyết định sa thải toàn bộ công nhân và thuê nhân công mới. Với lực lượng mới này, ông ta dự định rằng để sửa chiếc xe thứ \(i\) sẽ cần \(B[i]\) ngày. Vấn đề đặt ra đối với ông là phải lập lịch sửa tuần tự các chiếc xe sao cho tổng số tiền bị phạt là ít nhất.

Yêu cầu: Hãy lập lịch sửa xe giúp cho ông chủ cơ sở sửa chữa ô tô.

Input

  • Dòng 1: Chứa số \(n\) (\(n \leq 10000\))
  • Dòng 2: Chứa \(n\) số nguyên dương \(A[1], A[2], \ldots, A[n]\) \((1 \leq A[i] \leq 10000)\)
  • Dòng 3: Chứa \(n\) số nguyên dương \(B[1], B[2], \ldots, B[n]\) \((1 \leq B[i] \leq 100)\)

Output

  • Dòng 1: Ghi số tiền bị phạt tối thiểu
  • Dòng 2: Ghi số hiệu các xe sẽ tiến hành sửa chữa, theo thứ tự từ xe được sửa đầu tiên đến xe sửa sau cùng

Example

Test 1

Input
4
1 3 4 2
3 2 3 1
Output
44
4 2 3 1
Giải thích
  • Xong công việc 4 vào cuối ngày 1 => phải trả \(2 \cdot 1 = 2\).
  • Xong công việc 2 vào cuối ngày 3 => phải trả \(3 \cdot 3 = 9\).
  • Xong công việc 3 vào cuối ngày 6 => phải trả \(6 \cdot 4 = 24\).
  • Xong công việc 1 vào cuối ngày 9 => phải trả \(1 \cdot 9 = 9\).
  • Vậy tổng cộng phải trả \(44\).

Nguồn: LMH-SPOJ

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.