Borya và Hanabi

Đề bài

Mô tả

Trò chơi Hanabi (phiên bản đơn giản hoá) có 25 loại lá bài, ứng với 5 màu khác nhau (kí hiệu R, G, B, Y, W) và 5 giá trị khác nhau (các chữ số từ 1 đến 5). Mỗi loại bài được mô tả bởi đúng hai kí tự: kí tự đầu là màu, kí tự sau là giá trị (ví dụ G3 là lá bài màu xanh lá có giá trị 3).

Borya đang cầm n lá bài trên tay. Điểm đặc biệt của trò chơi là Borya không nhìn thấy các lá bài của mình, trong khi các người chơi khác thì thấy hết. Borya biết chính xác mình đang có bao nhiêu lá của mỗi loại trong 25 loại (tức là biết đa-tập các lá bài), nhưng không biết thứ tự sắp xếp của chúng.

Các người chơi khác có thể giúp Borya bằng cách đưa ra các gợi ý. Có hai dạng gợi ý:

  • Gợi ý màu: một người chơi gọi tên một màu rồi chỉ vào tất cả các lá bài trên tay Borya có màu đó.
  • Gợi ý giá trị: một người chơi gọi tên một giá trị rồi chỉ vào tất cả các lá bài trên tay Borya có giá trị đó.

Mục tiêu là sau một loạt gợi ý, Borya phải biết chắc chắn màu và giá trị của mỗi lá bài mà mình đang cầm. Hãy tìm số gợi ý ít nhất cần đưa ra để đạt mục tiêu này.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n (1n100) — số lá bài Borya đang cầm.
  • Dòng thứ hai chứa n mô tả lá bài, mỗi mô tả gồm đúng 2 kí tự (màu thuộc {R, G, B, Y, W} và giá trị thuộc {1, 2, 3, 4, 5}), cách nhau bởi dấu cách. Các mô tả có thể trùng nhau.

Dữ liệu ra

In ra một số nguyên duy nhất — số gợi ý ít nhất cần đưa ra.

Ràng buộc

  • 1n100.
  • Mỗi lá bài có dạng màugiá trị với màu thuộc {R,G,B,Y,W} và giá trị thuộc {1,2,3,4,5}.

Ví dụ

Input Output Giải thích
5
B1 Y1 W1 G1 R1
4 Năm lá đều có giá trị 1 nhưng khác màu. Cần 4 gợi ý màu (chỉ ra 4 trong 5 màu) để xác định từng lá; lá còn lại được suy ra.
4
G4 R4 R3 B3
2 Một cách tối ưu: gợi ý giá trị 4 và gợi ý màu R. Khi đó G4 là lá duy nhất "có giá trị 4, không phải màu R", các lá còn lại cũng được phân biệt.
2
G3 G3
0 Borya đã biết cả hai lá đều là G3 nên không cần gợi ý nào.

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