Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch
cho ~N~ hình chữ nhật, mỗi hình chữ nhật ~H~ có chiều dài là ~D_H~ và chiều rộng là ~R_H~.
Hình chữ nhật ~A~ được gọi là lớn hơn hình chữ nhật ~B~, ký hiệu ~A > B~ nếu:
- Hoặc diện tích hình chữ nhật ~A~ lớn hơn diện tích hình chữ nhật ~B~, tức là ~D_AR_A > D_BR_B~
- Hoặc diện tích hình chữ nhật ~A~ bằng diện tích hình chữ nhật ~B~ và chiều dài hình chữ nhật ~A~ lớn hơn chiều dài hình chữ nhật ~B~, tức là ~D_AR_A = D_BR_B~ và ~D_A > D_B~.
Hãy tìm độ dài của dãy giảm dài nhất (không cần liên tiếp) các hình chữ nhật. Tức là tìm số ~k~ lớn nhất sao cho tồn tại dãy các chỉ số ~i1, i2, ..., ik~ mà ~H_{i1} > H_{i2} > ... > H_{ik}~.
Input
- Dòng đầu tiên ghi số lượng hình chữ nhật N (~1 \le N \le 10^5~)
- ~N~ dòng tiếp theo, mỗi dòng ghi 2 số nguyên dương ~D_i, R_i (1 \le D_i, R_i \le 10^9)~, lần lượt là chiều dài và chiều rộng của hình chữ nhật thứ ~i~.
Output
In ra một số nguyên duy nhất là kết quả của bài toán
Giới hạn
- 70% số test có ~N \le 10^3~
- 30% số test còn lại không có ràng buộc gì thêm.
Sample Input
4
2 3
3 2
2 2
1 3
Sample Output
3
Giải thích
Các hình chữ nhật ~(2, 3), (3, 2), (2, 2), (1, 3)~.
Dãy giảm dần dài nhất với chỉ số tăng dần ~(2, 3)~ (chỉ số ~0~) ~→~ ~(2, 2)~(chỉ số ~2~) ~→~ ~(1, 3)~(chỉ số ~3~), với diện tích ~6 → 4 → 3~, độ dài ~3~
Bình luận