Truy vấn giá trị lớn nhất trên tập đoạn thẳng
Xem PDF
Điểm:
2200
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Cho một tập hợp các đoạn thẳng trên mặt phẳng tọa độ \(Oxy\). Ban đầu tập hợp này rỗng. Bạn cần xử lý \(Q\) truy vấn thuộc một trong hai loại sau:
1 l r a b: Thêm một đoạn thẳng \(y = a \cdot x + b\) có hiệu lực đối với các số nguyên \(x \in [l, r]\).2 x: Tìm giá trị lớn nhất của \(y = a \cdot x + b\) tại tọa độ \(x\) trong tất cả các đoạn thẳng đang có trong tập hợp mà phủ điểm \(x\).
Input
- Dòng đầu tiên chứa số nguyên \(Q\) (\(1 \le Q \le 10^5\)) — số lượng truy vấn.
- \(Q\) dòng tiếp theo, mỗi dòng mô tả một truy vấn theo định dạng nêu trên.
- Ràng buộc đoạn thẳng: \(1 \le l \le r \le 10^9\), \(-10^9 \le a, b \le 10^9\).
- Ràng buộc tọa độ truy vấn: \(1 \le x \le 10^9\).
Output
- Với mỗi truy vấn loại \(2\), in ra giá trị lớn nhất tìm được trên một dòng. Nếu không có đoạn thẳng nào phủ điểm \(x\), in ra
NO.
Example
Test 1
Input
7
2 10
1 1 5 2 3
1 3 8 -1 10
2 2
2 4
1 2 4 5 -1
2 3
Output
NO
7
11
14
Note
- Truy vấn \(1\) (
2 10): Chưa có đoạn thẳng nào phủ \(x = 10\), xuấtNO. - Truy vấn \(4\) (
2 2): Chỉ có đoạn thẳng \(1\) (\(y = 2x + 3\)) phủ \(x = 2\), giá trị bằng \(2 \cdot 2 + 3 = 7\). - Truy vấn \(5\) (
2 4): Đoạn thẳng \(1\) cho giá trị \(11\), đoạn thẳng \(2\) (\(y = -x + 10\)) cho giá trị \(6\). Giá trị lớn nhất là \(11\). - Truy vấn \(7\) (
2 3): Đoạn thẳng \(3\) (\(y = 5x - 1\)) cho giá trị \(5 \cdot 3 - 1 = 14\) là lớn nhất.
Scoring
- Subtask 1 (30% số điểm): \(1 \le Q \le 1000\).
- Subtask 2 (70% số điểm): \(1 \le Q \le 10^5\).
Bình luận