trang chủ / đề bài / dhbb23_hvt_10_c

Xem tivi

Đề bài

Mô tả

Trong một khu dưỡng lão, có N người già đang xem truyền hình. Các chương trình truyền hình bao gồm M kênh được đánh số từ 1 đến M. Mỗi người trong số họ có kênh mình yêu thích và có kênh mình không thích.

Nếu TV đang hiển thị một kênh không thích của một người nào đó, ông ấy sẽ đứng dậy, đi đến TV và thay đổi đến kênh yêu thích của mình và quay lại ghế xem tiếp. Nếu có nhiều người cùng không thích một kênh đang chiếu, thì người trẻ nhất trong số họ sẽ đứng dậy và chuyển qua kênh yêu thích của mình, phần còn lại sẽ vẫn ngồi yên.

Tất nhiên, sau khi có một sự thay đổi của kênh truyền hình, có thể là người khác thấy kênh mới là kênh không thích nên anh sẽ thay đổi kênh đó sang kênh khác. Với thực tế như vậy, quá trình chuyển kênh truyền hình có thể diễn ra vô thời hạn.

Yêu cầu: Cho trước danh sách những kênh yêu thích và không thích của tất cả N người, hãy xác định số lần chuyển kênh để đến một kênh nào đó tất cả mọi người cùng chấp nhận ngồi xem (tức là không có ai không thích kênh đó). Nếu ngay kênh ban đầu đã không có ai không thích thì số lần chuyển kênh là 0.

Dữ liệu vào

  • Dòng đầu tiên chứa ba số nguyên N, M và P (1≤N,M≤105, 1≤P≤M): số người nghỉ hưu, số lượng các kênh truyền hình và kênh ban đầu hiển thị trên TV;
  • Mỗi dòng trong số N dòng tiếp theo chứa 2 số nguyên ai và bi (1≤ai,bi≤M, ai≠bi): kênh yêu thích và kênh không thích của mỗi người;
  • Sự sắp xếp thứ tự của người xem truyền hình ở đầu vào là từ trẻ nhất đến già nhất (người thứ 1 trẻ nhất).

Dữ liệu ra

Một dòng duy nhất là số lần thay đổi kênh. Nếu những sự thay đổi liên tục và vô thời hạn thì đưa ra −1.

Ràng buộc

  • 1≤N,M≤105.
  • 1≤P≤M.
  • 1≤ai,bi≤M, ai≠bi.

Subtasks

  • Subtask 1 (50% số test đầu tiên): 1≤N,M≤1000.
  • Subtask 2 (50% số test còn lại): không có ràng buộc gì thêm.

Mỗi test có số điểm như nhau.

Ví dụ

Input Output Giải thích
4 5 2
1 3
2 3
3 2
5 1
3 TV đang chiếu kênh 2, người thứ 3 không thích nên chuyển sang kênh 3, có 2 người không thích kênh 3 nên người 1 (vì anh trẻ hơn) chuyển sang kênh 1, người thứ 4 không thích kênh 1 nên chuyển sang kênh 5. Lúc này mọi người đều chấp nhận kênh này. Như vậy, đã có 3 lần chuyển kênh để đến được kênh 5.
3 3 1
1 2
2 3
3 1
-1 Kênh lần lượt là 1→3→2→1→…, quá trình chuyển kênh không bao giờ dừng.
1 2 1
1 2
0 Ví dụ thêm. Không ai không thích kênh 1 đang chiếu nên không cần chuyển kênh.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0