Tồn Tại Đoạn Giao Nhau

Xem dưới dạng PDF

Gửi bài giải


Điểm: 10
Giới hạn thời gian: 1.5s
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 đoạn \([A, B]\) (\(A \le B\)). Hãy kiểm tra xem trong tập \(N\) đoạn thẳng đã cho, có tồn tại ít nhất một đoạn thẳng nào giao với đoạn \([A, B]\) hay không?

Hai đoạn thẳng \([L_i, R_i]\) và \([A, B]\) được gọi là giao nhau nếu chúng có ít nhất một điểm chung, tức là \(\max(L_i, A) \le \min(R_i, B)\).

Đị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 hai số nguyên \(A\) và \(B\) (\(-10^9 \le A \le B \le 10^9\)).

Định dạng đầu ra

  • Với mỗi truy vấn, in ra YES nếu tồn tại đoạn giao, ngược lại in ra NO 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
4 4
6 7

Output:

YES
NO
YES

Giải thích:

  • Đoạn thẳng: \([1, 3]\), \([5, 8]\), \([10, 12]\).
  • Truy vấn 1 (\([2, 4]\)): Giao với \([1, 3]\) \(\to\) YES.
  • Truy vấn 2 (\([4, 4]\)): Không giao với đoạn nào \(\to\) NO.
  • Truy vấn 3 (\([6, 7]\)): Giao với \([5, 8]\) \(\to\) YES.

Nhận xét

Không có ý kiến tại thời điểm này.