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.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