Diện tích bao lồi
Đề bài
Mô tả
Cho là một tập các điểm trên mặt phẳng. Ban đầu tập rỗng. Có một dãy gồm thao tác trên tập điểm này. Mỗi thao tác thuộc một trong hai dạng sau:
- Thêm một điểm có toạ độ nguyên vào tập . Trong thao tác này điểm được thêm vào có hoành độ lớn hơn hẳn hoành độ các điểm hiện đang nằm trong .
- Xoá khỏi một số điểm có hoành độ lớn nhất.
Ta gọi bao lồi của tập là đa giác lồi nhỏ nhất chứa tập . Nhiệm vụ của bạn là tính diện tích của bao lồi sau mỗi thao tác.
Dữ liệu vào
Dòng đầu tiên gồm một số nguyên (): số lượng thao tác.
Mỗi dòng trong dòng tiếp theo gồm ba số nguyên (, ). Gọi , , lần lượt là hai lần diện tích bao lồi, hoành độ lớn nhất, kích thước của tập trước khi thực hiện thao tác hiện tại. Ban đầu và nếu , ta coi . Ta biến đổi .
Nếu , khi đó ta thực hiện thao tác , thêm điểm vào tập sau khi biến đổi như sau:
- ;
- .
Dữ liệu đảm bảo sau khi biến đổi.
Nếu , ta thực hiện thao tác loại , xoá điểm có hoành độ lớn nhất với . Dữ liệu đảm bảo khi thực hiện thao tác này.
Dữ liệu ra
Sau mỗi thao tác, in ra hai lần diện tích bao lồi của tập trên một dòng.
Ràng buộc
- ;
- , ;
- sau khi biến đổi: ; khi xoá thì .
Subtasks
- Subtask 1 ( số điểm): .
- Subtask 2 ( số điểm): .
- Subtask 3 ( số điểm): số lượng thao tác loại không quá .
- Subtask 4 ( số điểm): không có ràng buộc gì thêm.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 6 0 1000000000 1000000000 0 1000000 1001000000 0 1000000 999000000 0 1001500 1000001500 1 85072946 2 1 61619603 2 |
0 0 3000000000000 6000000000000 3000000000000 0 |
Sau khi biến đổi: thêm ; thêm ; thêm , hai lần diện tích là ; thêm , hai lần diện tích là ; xoá điểm, còn ; xoá điểm, còn . |
| 9 0 1000000000 1000000000 0 1 1000000003 0 1 1000000001 1 1999999997 999999999 1 2 0 1 1999999998 999999993 1 1 0 0 1000000000 1000000005 0 6 1000000005 |
0 0 5 10 5 14 0 0 0 |
Ví dụ bổ sung. Sau khi biến đổi: thêm , , , (thao tác thứ tư có nhưng nên là thao tác thêm); xoá ; thêm ; xoá (tập rỗng); thêm , . |
Bình luận