[Buổi 16][Hàng đợi & Hàng đợi hai đầu][ADV] Bài 1: Phà vận chuyển hai bờ


LÀM BÀI

Points: 100
Time limit: 3.0s
Memory limit: 256M

Author:
Problem types

Phà vận chuyển hai bờ

Bối cảnh và bài toán

Một phà chở tối đa cap xe mỗi chuyến và mất cross phút để sang bờ bên kia. Phà bắt đầu ở bờ trái lúc 0. Mỗi xe có thời điểm đến và bờ chờ. Xe ở mỗi bờ được phục vụ FIFO. Khi phà ở một bờ, nó chở tối đa cap xe đã đến ở bờ đó; nếu không có xe ở bờ hiện tại nhưng bờ kia đã có xe chờ, phà chạy rỗng sang đó; nếu cả hai chưa có xe, thời gian nhảy tới thời điểm xe tiếp theo đến.

Yêu cầu

Tính thời điểm mỗi xe tới bờ đối diện, theo đúng thứ tự xe trong input.

Input

  • Dòng 1: cap cross m.
  • m dòng tiếp theo: arrival side, với side là left hoặc right; arrival không giảm.

Output

In m dòng, dòng i là thời điểm xe i tới bờ đối diện.

Ràng buộc

  • 1 <= cap <= 100
  • 1 <= cross <= 1000
  • 1 <= m <= 10^4
  • 0 <= arrival <= 10^9

Chấm điểm

Subtask Điểm Điều kiện Official tests
S1 20% m <= 100 01–04
S2 30% m <= 2000 05–10
S3 50% Không có ràng buộc bổ sung 11–20

Ví dụ 1

Input

2 10 4
0 left
10 left
10 right
20 right

Output

10
30
20
40

Giải thích. Xe 1 đi chuyến 0→10; tại 10 phà ở phải nên chở xe 3 về trái tới20; sau đó lần lượt xử lý xe 2 và 4.

Ví dụ 2

Input

1 5 3
0 left
0 right
10 left

Output

5
10
15

Giải thích. Phà luân phiên hai bờ do mỗi chuyến chỉ chở một xe.

Thông tin bài tập

Thuộc tính Giá trị
Mã bài DSA-M05-B16-ADV01
Buổi B16
Loại bài ADVANCED
Mức độ khó Khó (Hard)
Thời gian làm bài khuyến nghị 75 phút
Time limit 3 giây
Memory limit 256 MB
Tổng điểm 100
Chuẩn ngôn ngữ tham chiếu C++11 trở lên
Yêu cầu bổ sung Decision Note

Nguồn: Phỏng theo UVa Online Judge 10901 – Ferry Loading III.

Tham khảo: https://onlinejudge.org/external/109/10901.pdf


Comments

There are no comments at the moment.

Zalo