[PreVOI 25 - Contest 1] Bài 5: Mirror

Xem dạng PDF

Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 3.0s
Giới hạn bộ nhớ: 1G
Input: mirror.inp
Output: mirror.out

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, PyPy, Python, Scratch

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Cho trục số ~Ox~. Có ~n~ bộ gương được lắp trên trục số, mỗi bộ được biểu diễn bằng bộ 3 giá trị ~(h, d, c)~ với:

  • ~h~ là một trong 2 kí tự {'L', 'R'} có nghĩa là bộ gương được đặt bên trái tọa độ 0 hay bên phải tọa độ 0.
  • Nếu ~h = 'L'~, thì những chiếc gương được đặt ở các toạ độ ~-d, -2 \times d, -3 \times d, \dots, -c \times d~.
  • Nếu ~h = 'R'~, thì những chiếc gương được đặt ở các toạ độ ~d, 2 \times d, 3 \times d, \dots, c \times d~.

Lưu ý rằng với cách đặt gương này, sẽ có những tọa độ có nhiều hơn 1 chiếc gương.

Ở thời điểm bắt đầu (~t = 0~), có 1 tia laze sẽ bắt đầu được chiếu từ trái qua phải với vận tốc không đổi là một đơn vị trên giây. Khi laze chạm vào một chiếc gương, nó sẽ phá hủy chiếc gương và chuyển hướng đối diện ngay lập tức. Nếu có nhiều chiếc gương được đặt cùng 1 chỗ, chỉ có 1 chiếc gương bị phá hủy.

Bạn được cho ~q~ truy vấn, mỗi truy vấn bạn được cho một số nguyên dương ~T~, nhiệm vụ của bạn là hãy xác định vị trí của tia laze tại giây thứ ~T~.

Yêu cầu: Xác định vị trí của tia laze tại giây thứ ~T~ cho mỗi truy vấn.

Input

  • Dòng đầu tiên gồm 2 số nguyên dương ~n~ và ~q~ (~1 \le n, q \le 250 000~).
  • Mỗi dòng trong ~n~ dòng tiếp theo chứa 3 giá trị ~h, d~ và ~c~ (~h \in \{'L', 'R'\}, 1 \le d, c \le 10^{12}~), miêu tả cách bộ gương được đặt.
  • ~q~ dòng tiếp theo mỗi dòng chứa một số nguyên dương duy nhất ~T~ (~0 \le T \le 10^{12}~) mô tả truy vấn.

Output

  • In ra ~q~ dòng tương ứng với câu trả lời của ~q~ truy vấn.

Bình luận

Hãy đọc nội quy trước khi bình luận.


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