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

Người Nói Thật và Người Nói Dối

Đề bài

Mô tả

N người, mỗi người hoặc luôn nói thật hoặc luôn nói dối. Có M phát biểu, phát biểu thứ i có dạng "người x nói rằng người y là người nói thật (T) hoặc nói dối (L)".

Nếu x là người nói thật thì phát biểu của x đúng. Nếu x là người nói dối thì phát biểu của x sai (tức là thực tế ngược lại với những gì x nói).

Hãy tìm số nguyên A lớn nhất sao cho tồn tại một cách phân loại N người thành "nói thật" và "nói dối" thỏa mãn đồng thời tất cả A phát biểu đầu tiên.

Dữ liệu vào

  • Dòng 1: Hai số nguyên NM (2N1000, 1M10000)
  • Dòng 2 đến M+1: Mỗi dòng gồm x, y và ký tự "T" hoặc "L" mô tả phát biểu thứ i

Dữ liệu ra

Một số nguyên duy nhất: giá trị A lớn nhất.

Ràng buộc

  • 2N1000
  • 1M10000

Ví dụ

Input Output Giải thích
4 3
1 4 L
2 3 T
4 1 T
2 Phát biểu 1 và 3 mâu thuẫn nhau, nhưng phát biểu 1 và 2 tương thích (người 1,2,3 nói thật, người 4 nói dối)
10 20
4 1 L
3 9 L
10 5 L
10 8 L
7 9 T
5 2 T
9 4 L
4 3 T
6 3 T
4 7 L
10 2 L
3 1 T
3 2 T
4 1 T
6 3 L
6 8 L
5 2 L
5 9 T
6 4 L
4 5 L
11 11 phát biểu đầu tiên có thể thỏa mãn đồng thời

Ghi chú

"x y T" nghĩa là x tuyên bố "y là người nói thật". "x y L" nghĩa là x tuyên bố "y là người nói dối".

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0