Bãi đỗ xe

Đề bài

Mô tả

Một đoạn đường dài L mét được dùng làm bãi đỗ xe dọc theo lề đường. Các xe phải đỗ song song với lề đường. Trên đoạn đường này có một trục toạ độ: bãi đỗ bắt đầu tại điểm 0 và kết thúc tại điểm L, các xe di chuyển theo chiều toạ độ tăng dần.

Khi một tài xế muốn đỗ xe, anh ta sẽ tìm vị trí có toạ độ nhỏ nhất sao cho:

  • Khoảng cách từ đuôi xe của anh ta tới đầu xe phía sau (xe có toạ độ nhỏ hơn) ít nhất là b mét. Nếu phía sau không có xe nào, xe có thể đỗ ngay tại đầu bãi (toạ độ 0).
  • Khoảng cách từ đầu xe của anh ta tới đuôi xe phía trước (xe có toạ độ lớn hơn) ít nhất là f mét. Nếu phía trước không có xe nào, xe chỉ cần nằm trọn trong bãi.

Cụ thể: gọi xe phía sau kết thúc tại toạ độ e và xe phía trước bắt đầu tại toạ độ s. Một chiếc xe dài mét được đỗ ở vị trí mà đuôi xe ở toạ độ p (tức xe chiếm đoạn [p,p+]) là hợp lệ khi và chỉ khi pe+b (hoặc không có xe phía sau và p0), s(p+)f (hoặc không có xe phía trước và p+L), và 0pL.

Tài xế chọn giá trị p nhỏ nhất thoả mãn. Nếu không có vị trí hợp lệ, tài xế bỏ đi (không đỗ).

Đôi khi một chiếc xe đang đỗ sẽ rời bãi, giải phóng chỗ. Tại bất kỳ thời điểm nào chỉ có nhiều nhất một xe đang di chuyển trên đường.

Cho dãy yêu cầu, hãy mô phỏng và xác định vị trí đỗ cho từng xe vào bãi.

Dữ liệu vào

  • Dòng đầu tiên gồm ba số nguyên L, b, f (10L100000, 1b,f100).
  • Dòng thứ hai gồm một số nguyên n (1n100) — số yêu cầu.
  • n dòng tiếp theo, mỗi dòng gồm hai số nguyên mô tả một yêu cầu:
    • 1  — một xe có chiều dài (11000) muốn vào bãi đỗ.
    • 2 k — xe đã vào bãi qua yêu cầu thứ k (chỉ số bắt đầu từ 1) rời bãi. Đảm bảo xe ấy đang đỗ trong bãi tại thời điểm yêu cầu này.

Dữ liệu ra

Với mỗi yêu cầu loại 1, in ra trên một dòng vị trí p (toạ độ đuôi xe) nhỏ nhất thoả mãn, hoặc 1 nếu không có vị trí hợp lệ.

Ràng buộc

  • 10L100000
  • 1b,f100
  • 1n100
  • 11000

Ví dụ

Input Output Giải thích
30 1 2
6
1 5
1 4
1 5
2 2
1 5
1 4
0
6
11
17
23
Xe 1 đỗ tại 0, xe 2 tại 6 (cách xe 1 đúng b=1), xe 3 tại 11. Sau khi xe 2 rời bãi, khoảng trống giữa xe 1 và xe 3 chỉ rộng 115=6 — không đủ chứa xe dài 5 với khoảng đệm b=1 ở sau và f=2 ở trước, nên xe 4 (yêu cầu 5) phải đỗ tại 17 sau xe 3.
30 1 1
6
1 5
1 4
1 5
2 2
1 5
1 4
0
6
11
17
6
Cùng tình huống nhưng f=1. Sau khi xe 2 rời bãi, khoảng trống giữa xe 1 (kết thúc tại 5) và xe 3 (bắt đầu tại 11) rộng 6, vừa đủ chứa xe dài 4 với b=1 phía sau và f=1 phía trước, nên xe cuối đỗ tại toạ độ 6.
10 1 1
1
1 12
-1 Xe dài 12 vượt quá L=10, không thể đỗ.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0