Truy vấn số bước nhảy

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1800 Thời gian: 2.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Mỗi sáng dậy, Vũ tập thể dục giảm béo bằng cách nhảy cao. Vũ có thể nhảy từ ô \((x_1, y_1)\) đến ô \((x_2, y_2)\) nếu \(x_2 > x_1\)\(y_2 > y_1\). Vũ có thể bắt đầu nhảy từ một vị trí bất kỳ. Hãy tính số bước nhảy tối đa theo quy tắc trên và số cách nhảy khác nhau mà có cùng số bước nhảy tối đa, kết quả là phần dư khi chia cho \(10^9 + 7\).

Input

  • Dòng đầu là số vị trí \(n\) (\(1 \le n \le 3 \cdot 10^5\)).
  • \(n\) dòng tiếp theo là tọa độ các vị trí \(x_i, y_i\) (\(0 \le x_i, y_i \le 10^9\)). Không có hai tọa độ nào trùng nhau.

Output

  • Dòng đầu: Số bước nhảy nhiều nhất theo quy tắc trên.
  • Dòng thứ hai: Số cách nhảy, lấy dư theo modulo \(10^9 + 7\).

Example

Test 1

Input
11 
8 6 
7 4 
5 4 
5 1 
5 6 
6 2 
3 2 
4 3 
4 5 
3 5 
2 4 
Output
4 
3

Scoring

  • Subtask \(1\) (\(30\%\) số điểm): \(n \le 1000\).
  • Subtask \(2\) (\(70\%\) số điểm): Không có ràng buộc gì thêm.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.