trang chủ / bài tập / photogold

Bức ảnh (Gold)

Đề bài

Mô tả

Cho dãy gồm N vị trí được đánh số từ 1 đến N. Mỗi vị trí có thể được đánh dấu hoặc không. Bạn được cho M đoạn, đoạn thứ i bao gồm các vị trí từ ai đến bi (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 1.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên NM.
  • M dòng tiếp theo, mỗi dòng chứa hai số nguyên aibi 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 1 nếu không có cách đánh dấu hợp lệ.

Ràng buộc

  • 1N200000
  • 1M100000
  • 1aibiN

Ví dụ

Input Output Giải thích
5 3
1 4
2 5
3 4
1 Đoạn [3,4] phải chứa đúng một vị trí đánh dấu. Nếu đánh dấu vị trí 3, 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 [1,3][4,6] không giao nhau. Ta đánh dấu vị trí 2 (phủ đoạn [1,3]) và vị trí 5 (phủ đoạn [4,6]). 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

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0