Anda sedang memerangi jaringan mata-mata musuh yang luas . Anda tahu bahwa setiap mata-mata memiliki setidaknya satu (kadang-kadang banyak) identitas palsu yang mereka suka gunakan. Anda benar-benar ingin tahu berapa banyak mata-mata yang Anda hadapi sebenarnya.
Untungnya, agen kontra-intelijen Anda melakukan pekerjaan mereka dan kadang - kadang dapat mengetahui kapan dua identitas palsu sebenarnya dikendalikan oleh mata-mata musuh yang sama.
Artinya:
- Agen Anda tidak selalu tahu kapan dua identitas palsu memiliki mata-mata yang sama di belakang mereka
- Jika seorang agen memberi tahu Anda dua identitas palsu dikendalikan oleh mata-mata yang sama, Anda yakin itu benar.
Pesan agen
Agen mengirimi Anda pesan rahasia yang memberi tahu Anda identitas mana yang memiliki mata-mata yang sama di belakangnya. Sebuah contoh:
Anda memiliki 2 agen dan 5 identitas palsu untuk ditangani.
Agen pertama mengirimi Anda pesan:
Red Red Blue Orange Orange
Ini berarti mereka berpikir ada 3 mata-mata:
- yang pertama (Merah) mengontrol identitas 1 dan 2
- yang kedua (Biru) mengontrol identitas 3
- yang ketiga (Oranye) mengontrol identitas 4 dan 5
Agen kedua mengirimi Anda pesan:
cat dog dog bird fly
Ini berarti mereka berpikir ada 4 mata-mata:
- yang pertama (kucing) mengontrol identitas 1
- yang kedua (anjing) mengontrol identitas 2 dan 3
- yang ketiga (burung) mengontrol identitas 4
- yang keempat (terbang) mengontrol identitas 5
Kompilasi intel yang kita lihat:
Identities: id1 id2 id3 id4 id5
Agent 1: |--same-spy--| |--same-spy--|
Agent 2: |--same-spy--|
Conclusion: |-----same-spy------||--same-spy--|
Ini berarti ada paling banyak 2 mata-mata .
Catatan
Identitas yang dimiliki oleh mata-mata yang sama tidak harus berturut-turut, yaitu pesan seperti:
dog cat dog
adalah benar.
Juga, kata yang sama dapat digunakan oleh dua agen yang berbeda - itu tidak berarti apa-apa, itu hanya kebetulan, misalnya:
Agent 1: Steam Water Ice
Agent 2: Ice Ice Baby
Es digunakan oleh kedua agen - yang Ice
digunakan oleh agen pertama tidak terkait dengan dua kejadian yang Ice
digunakan oleh agen kedua.
Tantangan
Kompilasi semua intel agen Anda dan cari tahu berapa banyak mata-mata musuh yang ada. (Untuk lebih tepatnya, dapatkan batas atas terendah, mengingat informasi terbatas yang Anda miliki.)
Kode terpendek dalam byte menang.
Input dan Output spec
Input adalah daftar n baris, yang mewakili n pesan dari agen. Setiap baris terdiri dari k token yang dipisahkan ruang, sama k untuk semua baris. Token adalah alfanumerik, panjang arbitrer. Kasus penting.
Outputnya harus berupa angka tunggal, mewakili jumlah mata-mata yang berbeda, berdasarkan intel agen Anda.
Contohnya
Contoh 1
Memasukkan:
Angel Devil Angel Joker Thief Thief
Ra Ra Ras Pu Ti N
say sea c c see cee
Keluaran:
2
Contoh 2
Memasukkan:
Blossom Bubbles Buttercup
Ed Edd Eddy
Keluaran:
3
Contoh 3
Memasukkan:
Botswana Botswana Botswana
Left Middle Right
Keluaran:
1
Contoh 4
Memasukkan:
Black White
White Black
Keluaran:
2
Contoh 5
Memasukkan:
Foo Bar Foo
Foo Bar Bar
Keluaran:
1
Contoh 6
Memasukkan:
A B C D
A A C D
A B C C
A B B D
Keluaran:
1
Contoh 7
Memasukkan:
A B A C
Keluaran:
3
Contoh 8
Memasukkan:
A
B
C
Keluaran:
1
Contoh 9
Memasukkan:
X
Keluaran:
1