Sạc pin

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++
Điểm: 12 Thời gian: 2.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Có một bộ sạc với số lượng khe sạc không giới hạn. Tại thời điểm \(0\), tất cả các khe sạc đều trống.

Dung lượng tối đa của một viên pin là \(V\). Khi một viên pin được cắm vào khe sạc, nó được sạc với tốc độ \(1\) đơn vị dung lượng trên mỗi \(1\) đơn vị thời gian cho đến khi đạt dung lượng tối đa \(V\) (nghĩa là mức sạc tăng thêm \(1\) sau mỗi \(1\) đơn vị thời gian trôi qua).

Hãy xử lý \(Q\) truy vấn theo thứ tự. Truy vấn thứ \(q\) diễn ra tại thời điểm \(t_q\). Dữ liệu đảm bảo \(t_1 < t_2 < \dots < t_Q\).

Có 2 loại truy vấn:

  • Loại 1 (1 t_q w_q): Tại thời điểm \(t_q\), cắm một viên pin có mức sạc ban đầu là \(w_q\) vào một khe sạc.
  • Loại 2 (2 t_q): Tại thời điểm \(t_q\), rút một viên pin có mức sạc cao nhất ra khỏi khe sạc và in ra mức sạc của viên pin đó tại thời điểm \(t_q\). Nếu hiện tại không có viên pin nào đang được cắm, in ra -1.

Dữ liệu vào

Dữ liệu nhập từ luồng chuẩn theo định dạng sau:

  • Dòng đầu tiên gồm hai số nguyên \(Q\)\(V\).
  • \(Q\) dòng tiếp theo, mỗi dòng mô tả một truy vấn thuộc một trong hai dạng:
  • 1 t_q w_q
  • 2 t_q

Kết quả

Gọi \(x\) là số lượng truy vấn loại 2. In ra \(x\) dòng, dòng thứ \(k\) (\(1 \le k \le x\)) chứa kết quả tương ứng cho truy vấn loại 2 thứ \(k\).

Điều kiện

  • \(1 \le Q \le 3 \times 10^5\)
  • \(1 \le V \le 10^9\)
  • Đối với truy vấn loại 1: \(1 \le t_q \le 10^9\), \(0 \le w_q \le V\).
  • Đối với truy vấn loại 2: \(1 \le t_q \le 10^9\).
  • \(t_1 < t_2 < \dots < t_Q\).
  • Tất cả các giá trị đầu vào đều là số nguyên.

Ví dụ

Input Output
7 100
1 15 60
1 25 80
2 30
1 45 0
2 60
2 70
2 80
85
100
25
-1

Bình luận

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

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