Bức ảnh (Gold)
Nộp bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Python 3
5.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Go, Java, Kotlin, Pascal, Python, Scratch
Cho dãy gồm vị trí được đánh số từ đến . Mỗi vị trí có thể được đánh dấu hoặc không. Bạn được cho đoạn, đoạn thứ bao gồm các vị trí từ đến (bao gồm cả hai đầu). Biết rằng mỗi đoạn chứa đúng một vị trí được đánh dấu.
Hãy tìm số lượng lớn nhất các vị trí có thể được đánh dấu sao cho thỏa mãn tất cả các ràng buộc trên. Nếu không tồn tại cách đánh dấu hợp lệ, in ra .
Dữ liệu vào
- Dòng đầu tiên chứa hai số nguyên và .
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và mô tả một đoạn.
Dữ liệu ra
- In ra một số nguyên duy nhất: số lượng lớn nhất các vị trí được đánh dấu, hoặc nếu không có cách đánh dấu hợp lệ.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 3 1 4 2 5 3 4 |
1 | Đoạn phải chứa đúng một vị trí đánh dấu. Nếu đánh dấu vị trí , cả ba đoạn đều chứa đúng một vị trí đánh dấu. Không thể đánh dấu thêm vị trí nào mà vẫn đảm bảo mỗi đoạn chỉ chứa đúng một. |
| 6 2 1 3 4 6 |
2 | Hai đoạn và không giao nhau. Ta đánh dấu vị trí (phủ đoạn ) và vị trí (phủ đoạn ). Mỗi đoạn chứa đúng một vị trí đánh dấu, và đây là số lượng lớn nhất. |
Ghi chú
Lưu ý rằng mỗi đoạn phải chứa đúng một vị trí đánh dấu, không phải ít nhất một.
Bình luận