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, Pascal, Python
Bạn An có một bộ sách hay và muốn chia sẻ với các bạn trong câu lạc bộ đọc sách của trường. Có ~N~ yêu cầu được mượn cuối sách này từ các bạn trong câu lạc bộ, yêu cầu thứ ~i~ ~(1 \le i \le N)~ cho biết thời điểm mượn sách là ~a_i~ và thời điểm trả là ~b_i~. Bạn An có thể chấp nhận hoặc từ chối đối với một yêu cầu.
Yêu cầu
Hãy lập trình giúp bạn An chọn các yêu cầu mượn sách của các bạn sao cho đáp ứng được nhiều yêu cầu nhất. Đảm bảo khoảng thời gian sử dụng của hai yêu cầu là không giao nhau.
Dữ liệu đầu vào
Gồm ~N + 1~ dòng:
- Dòng đầu tiên chứa số nguyên dương ~N~ ~(N \le 10^4)~;
- Dòng thứ ~i~ trong số ~N~ dòng tiếp theo chứa hai số nguyên dương ~a_{i},\ b_{i}~ với ~(0 < a_{i} < b_{i} \le 32000)~ ~(1 \le i \le N)~.
Dữ liệu đầu ra
Gồm một số nguyên ~K~ là số các yêu cầu được chấp nhận.
Ràng buộc dữ liệu
- Có 30% số điểm thỏa mãn ~N \le 100;\ a_i < b_i \le 10^3~;
- Có 30% số điểm thỏa mãn ~100 < N \le 10^3;\ a_i < b_i \le 10^3~;
- Có 40% số điểm không có ràng buộc gì thêm.
Ví dụ
Ví dụ 1
INPUT
5
7 9
2 4
1 3
1 6
4 7
OUTPUT
3
Giải thích: Các yêu cầu được chấp thuận là: ~1\ 3; 4\ 7; 7\ 9~.
Bình luận