Truy Vấn Điểm Thuộc Đoạn
Xem dưới dạng PDF
Gửi bài giải
Điểm:
20
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Cho \(N\) đoạn thẳng trên trục số, đoạn thẳng thứ \(i\) giới hạn từ tọa độ \(L_i\) đến \(R_i\) (\(L_i \le R_i\)).
Bạn cần xử lý \(Q\) truy vấn: Mỗi truy vấn cho một điểm \(X\). Hãy tìm tất cả các đoạn thẳng chứa điểm \(X\) (tức là \(L_i \le X \le R_i\)).
Với mỗi truy vấn, hãy in ra:
- Số lượng đoạn thẳng chứa \(X\).
- Tổng các tích \(L_i \times R_i\) của các đoạn thẳng tìm được, chia lấy dư cho \(10^9+7\).
Định dạng đầu vào
- Dòng đầu chứa hai số nguyên dương \(N\) và \(Q\) (\(1 \le N, Q \le 10^5\)).
- \(N\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(L_i\) và \(R_i\) (\(-10^9 \le L_i \le R_i \le 10^9\)).
- \(Q\) dòng tiếp theo, mỗi dòng chứa một số nguyên \(X\) (\(-10^9 \le X \le 10^9\)).
Định dạng đầu ra
- Với mỗi truy vấn, in ra số lượng đoạn thẳng chứa và tổng tích modulo \(10^9+7\) cách nhau bởi dấu cách trên một dòng.
Ràng buộc & Subtasks
- Subtask 1 (30% số điểm): \(N, Q \le 1000\).
- Subtask 2 (70% số điểm): \(N, Q \le 10^5\), các ràng buộc gốc.
Ví dụ
Input:
3 3
1 3
5 8
10 12
2
4
6
Output:
1 3
0 0
1 40
Giải thích:
- Các đoạn thẳng: \([1, 3]\), \([5, 8]\), \([10, 12]\).
- Truy vấn 1 (\(X=2\)): Nằm trong \([1, 3]\). Số lượng = 1. Tổng tích = 3.
- Truy vấn 2 (\(X=4\)): Không thuộc đoạn nào. Số lượng = 0. Tổng tích = 0.
- Truy vấn 3 (\(X=6\)): Nằm trong \([5, 8]\). Số lượng = 1. Tổng tích = 40.
Nhận xét