Geniş bir düşman casusları ağıyla savaşıyorsunuz . Her casusun kullanmayı sevdikleri en az bir (bazen çoklu) sahte kimliğe sahip olduğunu biliyorsunuz . Gerçekten kaç tane casusla uğraştığını bilmek istiyorsun.
Neyse ki, karşı istihbarat ajanlarınız işlerini yapıyor ve bazen iki sahte kimliğin aslında aynı düşman casusu tarafından kontrol edildiğini anlayabilir.
Demek ki:
- Ajanlarınız her zaman iki sahte kimliğin arkasında aynı casusu olduğunu bilmiyor.
- Bir ajan size iki sahte kimliğin aynı casus tarafından kontrol edildiğini söylerse, haklı olduklarına güvenirsiniz.
Ajan mesajları
Ajanlar size hangi kimliklerin aynı casuslara sahip olduklarını söyleyen şifreli mesajlar gönderir. Bir örnek:
You have 2 ajanları ve 5 sahte kimlikler ile başa çıkmak için.
İlk ajan size bir mesaj gönderir:
Red Red Blue Orange Orange
Bu, 3 casus olduğunu düşünüyorlar:
- ilki (Kırmızı) 1 ve 2 kimliklerini kontrol eder.
- ikincisi (Mavi) kimliği kontrol eder 3
- Üçüncüsü (Turuncu) 4 ve 5 kimliklerini kontrol eder.
İkinci ajan size bir mesaj gönderir:
cat dog dog bird fly
Bu 4 casus olduğunu düşünüyorlar:
- ilki (kedi) kimliği kontrol eder 1
- ikincisi (köpek) 2 ve 3 numaralı kimlikleri kontrol eder.
- üçüncüsü (kuş) kimliği kontrol eder 4
- dördüncü olan (sinek) kimliği kontrol eder 5
Gördüğümüz bilgileri derlerken:
Identities: id1 id2 id3 id4 id5
Agent 1: |--same-spy--| |--same-spy--|
Agent 2: |--same-spy--|
Conclusion: |-----same-spy------||--same-spy--|
Bu, en fazla 2 casus olduğu anlamına gelir .
notlar
Aynı casusun sahip olduğu kimliklerin ardışık olması gerekmez, örneğin:
dog cat dog
geçerlidir
Ayrıca, aynı kelime iki farklı ajan tarafından da kullanılabilir - bu bir anlam ifade etmiyor, sadece bir tesadüf, örneğin:
Agent 1: Steam Water Ice
Agent 2: Ice Ice Baby
Buz, her iki ajan tarafından da kullanılır - Ice
birinci ajan Ice
tarafından kullanılan, ikinci ajan tarafından kullanılan iki olay ile ilişkili değildir .
Meydan okuma
Tüm ajanlarının istihbaratını topla ve kaç düşman casusu olduğunu bul. (Daha kesin olmak için, sahip olduğunuz sınırlı bilgi göz önüne alındığında, en düşük üst sınırı alın.)
Bayt cinsinden en kısa kod kazanır.
Giriş ve Çıkış özellikleri
Giriş, aracılardan n mesajlarını temsil eden n satırlarının bir listesidir. Her satır, k ile boşluk bırakılmış belirteçlerden oluşur, tüm satırlar için aynı k. Jetonlar alfasayısal, isteğe bağlı uzunluktadır. Dava önemli.
Çıktı, acentalarınızın bilgisine dayanarak, farklı casusların sayısını temsil eden tek bir sayı olmalıdır.
Örnekler
örnek 1
Giriş:
Angel Devil Angel Joker Thief Thief
Ra Ra Ras Pu Ti N
say sea c c see cee
Çıktı:
2
Örnek 2
Giriş:
Blossom Bubbles Buttercup
Ed Edd Eddy
Çıktı:
3
Örnek 3
Giriş:
Botswana Botswana Botswana
Left Middle Right
Çıktı:
1
Örnek 4
Giriş:
Black White
White Black
Çıktı:
2
Örnek 5
Giriş:
Foo Bar Foo
Foo Bar Bar
Çıktı:
1
Örnek 6
Giriş:
A B C D
A A C D
A B C C
A B B D
Çıktı:
1
Örnek 7
Giriş:
A B A C
Çıktı:
3
Örnek 8
Giriş:
A
B
C
Çıktı:
1
Örnek 9
Giriş:
X
Çıktı:
1