trang chủ / bài tập / facrepair

Sửa Chữa Nhà Máy

Đề bài

Mô tả

Một nhà máy sản xuất kim khâu hoạt động trong n ngày. Bình thường nhà máy có thể sản xuất tối đa a kim khâu mỗi ngày, nhưng do hỏng hóc nên hiện tại chỉ sản xuất được tối đa b kim khâu mỗi ngày (b<a). Chủ nhà máy muốn dành ra một khoảng k ngày liên tiếp để sửa chữa: trong k ngày đó nhà máy không sản xuất được gì, nhưng sau đó năng suất được khôi phục về a kim khâu mỗi ngày.

Ban đầu chưa có đơn hàng nào. Nhà máy nhận được q truy vấn, mỗi truy vấn thuộc một trong hai loại:

  • 1 d a — có thêm a đơn hàng đặt giao đúng vào ngày d. Mỗi đơn hàng cần đúng một kim khâu được sản xuất trong ngày được đặt; nhà máy có thể chọn giao bao nhiêu đơn hàng tuỳ ý trong số đơn của ngày đó (không bắt buộc giao hết).
  • 2 p — hỏi: nếu bây giờ nhà máy bắt đầu sửa chữa từ ngày p (tức là không sản xuất trong các ngày p,p+1,,p+k1), thì tổng số đơn hàng nhiều nhất có thể được giao là bao nhiêu?

Cụ thể, với một ngày bất kỳ:

  • Nếu ngày đó nằm trước giai đoạn sửa chữa (ngày <p): tối đa b đơn của ngày đó được giao.
  • Nếu ngày đó nằm trong giai đoạn sửa chữa (pngàyp+k1): không giao được đơn nào.
  • Nếu ngày đó nằm sau giai đoạn sửa chữa (ngày >p+k1): tối đa a đơn của ngày đó được giao.

Lưu ý các truy vấn loại 2 không thực sự xảy ra — chúng chỉ là câu hỏi giả định để chủ nhà máy cân nhắc thời điểm sửa chữa.

Dữ liệu vào

Dòng đầu chứa năm số nguyên n, k, a, b, q.

q dòng tiếp theo, mỗi dòng chứa một truy vấn dạng 1 d a_i hoặc 2 p như mô tả ở trên. Đảm bảo có ít nhất một truy vấn loại 2.

Dữ liệu ra

Với mỗi truy vấn loại 2, in ra trên một dòng số đơn hàng nhiều nhất có thể giao.

Ràng buộc

  • 1kn2·105
  • 1b<a104
  • 1q2·105
  • 1dn, 1ai104
  • 1pnk+1

Ví dụ

Input Output Giải thích
5 2 2 1 8
1 1 2
1 5 3
1 2 1
2 2
1 4 2
1 3 2
2 1
2 3
3
6
4
Sau ba cập nhật đầu: đơn ngày 1=2, ngày 2=1, ngày 5=3. Truy vấn p=2 (sửa ngày 2–3): ngày 1 giao min(2,1)=1, ngày 4 giao 0, ngày 5 giao min(3,2)=2 → tổng 3. Sau hai cập nhật tiếp theo đơn ngày 3=2, ngày 4=2. Truy vấn p=1: chỉ tính ngày 3,4,5 với mức a=2, được 2+2+2=6. Truy vấn p=3: ngày 1,2 mức b=1 được 1+1=2, ngày 5 mức a=2 được 2, tổng 4.
5 4 10 1 6
1 1 5
1 5 5
1 3 2
1 5 2
2 1
2 2
7
1
p=1: chỉ tính ngày 5, min(7,10)=7. p=2: chỉ tính ngày 1, min(5,1)=1.

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