IOI05 Mountains

Xem dạng PDF

Gửi bài giải

Điểm: 1,07 (OI)
Giới hạn thời gian: 4.5s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Nguồn bài:
IOI 2005 - Poland
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Một công viên giải trí vừa mở trò chơi tàu lượn siêu tốc thế hệ mới. Đường ray tàu lượn bao gồm ~N~ thanh ray gắn với nhau. Đoạn đầu của thanh ray thứ nhất được cố định tại cao độ ~0~. Byteman, người điều hành, có thể điều chỉnh lại đường ray tàu lượn theo ý muốn bằng cách điều chỉnh độ thay đổi cao độ của một dãy các thanh ray liên tiếp. Độ thay đổi cao độ của các thanh ray khác không bị thay đổi. Mỗi khi các thanh ray được điều chỉnh, đường ray được nâng lên hoặc hạ xuống để nối các thanh ray trong khi vẫn giữ điểm đầu ở cao độ ~0~. Hình vẽ dưới đây minh họa ~2~ ví dụ về điều chỉnh đường ray.

Mỗi chuyến tàu được thực hiện bằng cách khởi động xe với đủ năng lượng để đạt đến độ cao ~h~. Nghĩa là xe sẽ tiếp tục di chuyển đến khi nào độ cao của đường ray không vượt quá ~h~ và chưa đi hết đường ray.

Cho biết thông tin về các chuyến tàu và các điều chỉnh đường ray trong ngày, với mỗi chuyến tàu hãy tính số thanh ray xe di chuyển trước khi dừng lại.

Đường ray được mô tả dưới dạng một dãy gồm ~N~ độ thay đổi cao độ, mỗi giá trị tương ứng với một thanh ray. Số thứ ~i d_{i}~ mô tả độ thay đổi cao độ (tính theo cm) của thanh ray thứ ~i~. Giả sử sau khi di chuyển trên i-1 thanh ray xe đạt đến độ cao ~h~ thì sau khi di chuyển trên ~i~ thanh ray, xe sẽ đạt đến độ cao ~h~ + ~d_{i}~ cm.

Ban đầu tất cả các thanh ray đều nằm ngang, nghĩa là ~d_{i} =0~ với mọi ~i~. Các chuyến tàu và điều chỉnh đường ray diễn ra xen kẽ nhau trong ngày. Mỗi điều chỉnh được đặc trưng bởi ~3~ số: ~a~, ~b~ và ~D~. Đoạn ray được điều chỉnh bao gồm các thanh ray từ ~a~ đến ~b~. Độ thay đổi cao độ của mỗi thanh ray trong đoạn được đặt bằng ~D~. Nghĩa là ~d_{i}~ =D với mọi ~a \leq i \leq b~. Mỗi chuyến tàu được đặc trưng bởi ~1~ số nguyên ~h~ cho biết cao độ lớn nhất mà xe đạt được.

Input

Dòng đầu tiên chứa số nguyên ~N~ - số thanh ray (~1 \leq N \leq 10^9~). Các dòng tiếp theo chứa thông tin về các điều chỉnh đường ray xen kẽ với các chuyến tàu. Mỗi dòng có ~1~ trong các dạng:

  • Điều chỉnh - một chữ cái 'I' và ~3~ số nguyên ~a~, ~b~, ~D~, cách nhau bởi khoảng trắng (~1 \leq a \leq b \leq n~, ~-10^9 \leq D \leq 10^9~).
  • Chuyến tàu - một chữ cái 'Q' và số nguyên ~h~ (~0 \leq h \leq 10^9~) cách nhau bởi khoảng trắng.
  • Một chữ cái 'E' - đánh dấu kết thúc chương trình.

Tại mỗi thời điểm, cao độ của bất kỳ điểm nào trên đường ray được đảm bảo thuộc đoạn [~0~, ~10^9~]. Dữ liệu vào chứa không quá ~10^5~ dòng.

Output

Dòng thứ i chứa 1 số nguyên - là số thanh ray xe di chuyển trong chuyến tàu thứ i.

Giới hạn

50% số test có ~N~ thỏa mãn ~1 \leq N \leq 20000~ và dữ liệu vào có không quá ~1000~ dòng.

Sample Input

4
Q 1
I 1 4 2
Q 3
Q 1
I 2 2 -1
Q 3
E

Sample Output

4
1
0
3

Note

Đường ray trước và sau mỗi điều chỉnh. Trục x biểu diễn các thanh ray. Trục y và số trên các điểm biểu diễn cao độ. Số trên các đoạn biểu diễn độ thay đổi cao độ.


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.