Bao quanh
Xem PDF
Điểm:
2000 (p)
Thời gian:
1.5s
Bộ nhớ:
977M
Input:
bàn phím
Output:
màn hình
Cho \(n\) điểm trên vòng tròn đánh số \(1, 2, \dots, n\) theo chiều kim đồng hồ. Có \(k\) đoạn dây, đoạn dây thứ \(i\) nối từ điểm \(l_i\) tới điểm \(r_i\) theo chiều kim đồng hồ. Cần loại bỏ một số đoạn dây, giữ lại ít đoạn dây nhất sao cho đảm bảo cả \(n\) điểm đều được phủ (hoặc là đầu mút) của ít nhất \(1\) đoạn dây.
Input
- Dòng đầu chứa hai số nguyên dương \(n, k\) (\(n, k \le 10^6\)).
- \(k\) dòng tiếp theo, dòng thứ \(i\) chứa hai số nguyên \(l_i, r_i\).
Output
- Ghi ra số lượng ít nhất các đoạn dây cần giữ lại. Trường hợp không thể phủ hết cả \(n\) điểm, đưa ra
impossible.
Example
Test 1
Input
100 7
1 50
50 70
70 90
90 40
20 60
60 80
80 20
Output
3
Test 2
Input
8 2
8 3
5 7
Output
impossible
Test 3
Input
8 2
8 4
5 7
Output
2
Scoring
- Có \(50\%\) số test tương ứng \(50\%\) số điểm có \(n, k \le 5000\).
- \(50\%\) số test còn lại không có ràng buộc gì thêm.
Bình luận