Bạn đang chiến đấu với một mạng lưới gián điệp rộng lớn của kẻ thù . Bạn biết rằng mỗi điệp viên có ít nhất một (đôi khi nhiều) danh tính giả mà họ muốn sử dụng. Bạn thực sự muốn biết có bao nhiêu gián điệp mà bạn thực sự phải đối phó.
May mắn thay, phản gián của bạn đại lý đang làm công việc của họ và có thể đôi khi hình dung ra khi hai sắc giả đang thực sự kiểm soát bởi các điệp viên cùng một kẻ thù.
Điều đó có nghĩa là:
- Tuy nhiên, các đặc vụ của bạn không biết khi nào hai danh tính giả có cùng một gián điệp đằng sau họ, tuy nhiên
- Nếu một đặc vụ cho bạn biết hai danh tính giả được kiểm soát bởi cùng một điệp viên, bạn tin rằng họ đúng.
Tin nhắn đại lý
Các đại lý gửi cho bạn các tin nhắn khó hiểu cho bạn biết danh tính nào có cùng một gián điệp đằng sau chúng. Một ví dụ:
Bạn có 2 đại lý và 5 danh tính giả để đối phó.
Tác nhân đầu tiên gửi cho bạn một tin nhắn:
Red Red Blue Orange Orange
Điều này có nghĩa là họ nghĩ có 3 điệp viên:
- cái đầu tiên (Đỏ) kiểm soát danh tính 1 và 2
- cái thứ hai (màu xanh) kiểm soát danh tính 3
- cái thứ ba (Orange) kiểm soát danh tính 4 và 5
Tác nhân thứ hai gửi cho bạn một tin nhắn:
cat dog dog bird fly
Điều này có nghĩa là họ nghĩ có 4 điệp viên:
- người đầu tiên (mèo) kiểm soát danh tính 1
- cái thứ hai (chó) kiểm soát danh tính 2 và 3
- con thứ ba (chim) điều khiển danh tính 4
- cái thứ tư (bay) điều khiển danh tính 5
Biên dịch intel chúng ta thấy:
Identities: id1 id2 id3 id4 id5
Agent 1: |--same-spy--| |--same-spy--|
Agent 2: |--same-spy--|
Conclusion: |-----same-spy------||--same-spy--|
Điều này có nghĩa là có nhiều nhất 2 điệp viên .
Ghi chú
Các danh tính thuộc sở hữu của cùng một điệp viên không cần phải liên tiếp, tức là một thông điệp như:
dog cat dog
có giá trị
Ngoài ra, cùng một từ có thể được sử dụng bởi hai tác nhân khác nhau - điều đó không có nghĩa gì cả, đó chỉ là sự trùng hợp, ví dụ:
Agent 1: Steam Water Ice
Agent 2: Ice Ice Baby
Nước đá được sử dụng bởi cả hai tác nhân - việc Ice
sử dụng bởi tác nhân thứ nhất không liên quan đến hai lần Ice
sử dụng của tác nhân thứ hai.
Thử thách
Tổng hợp tất cả thông tin của các đặc vụ của bạn và tìm hiểu xem có bao nhiêu gián điệp của kẻ thù thực sự. (Để chính xác hơn, hãy lấy giới hạn trên thấp nhất, với thông tin hạn chế bạn có.)
Mã ngắn nhất tính bằng byte thắng.
Thông số đầu vào và đầu ra
Đầu vào là danh sách n dòng, đại diện cho n tin nhắn từ các tác nhân. Mỗi dòng bao gồm các mã thông báo phân tách không gian k, cùng k cho tất cả các dòng. Mã thông báo là chữ và số, độ dài tùy ý. Vấn đề.
Đầu ra phải là một số duy nhất, đại diện cho số lượng gián điệp riêng biệt, dựa trên thông tin của các đại lý của bạn.
Ví dụ
ví dụ 1
Đầu vào:
Angel Devil Angel Joker Thief Thief
Ra Ra Ras Pu Ti N
say sea c c see cee
Đầu ra:
2
Ví dụ 2
Đầu vào:
Blossom Bubbles Buttercup
Ed Edd Eddy
Đầu ra:
3
Ví dụ 3
Đầu vào:
Botswana Botswana Botswana
Left Middle Right
Đầu ra:
1
Ví dụ 4
Đầu vào:
Black White
White Black
Đầu ra:
2
Ví dụ 5
Đầu vào:
Foo Bar Foo
Foo Bar Bar
Đầu ra:
1
Ví dụ 6
Đầu vào:
A B C D
A A C D
A B C C
A B B D
Đầu ra:
1
Ví dụ 7
Đầu vào:
A B A C
Đầu ra:
3
Ví dụ 8
Đầu vào:
A
B
C
Đầu ra:
1
Ví dụ 9
Đầu vào:
X
Đầu ra:
1