Arkadaşlarımı aramam gerekiyor, ancak telsiz telefonumun düğmeleri düzgün çalışmıyor. Basabildiğim tek düğme [Yukarı], [Aşağı] ve [Ara]. Son çağrılarımda gezinmek için [Yukarı] ve [Aşağı] kullanılabilir ve seçilen adı aramak için [Ara] kullanılabilir. Telefonumun N
son aramaları tutan bir listesi var ve aramam gereken tüm arkadaşların bu listede olduğunu biliyorum.
Görev:
Bir numara N
ve bir ad listesi alırsınız L
:
N
telefonumun hatırlayabileceği son çağrı sayısı;L
aramam gereken sırayla isimleri var.
Son arama listesinin en uygun düzenlemesinde yapmam gereken düğme basma sayısını çıkarmalısınız.
Misal:
-> Giriş:
Anna, Bob ve Anna'yı tekrar çağırıyorum. Son aramalar 5 numara ile.
5
Anna
Bob
Anna
-> Çıktı:
Olası en uygun düzenleme: Anna, Foo, Bar, Foobar, Bob
5 # Key presses: [Call] Anna, [Up] + [Call] Bob, [Down] + [Call] Anna
Daha fazla test örneği:
Input: 5, Anna, Bob, Carl
Output: 5
Input: 5, Anna, Bob, Carl, Anna
Output: 8
Input: 5, A, B, C, D, E, A
Output: 11
Input: 6, A, B, C, D, E, A
Output: 12
Input: 4, A, B, C, B, A
Output: 10
Kurallar:
- İmleciniz her zaman listenin ilk konumunda başlar;
- Girişi
N
veL
herhangi bir kaynaktan alabilirsiniz: klavye, parametreler, dosya, vb; - Listedeki adlar aşağıdaki gibi herhangi bir makul biçimde olabilir: dizeler, tamsayılar, karakterler;
- Son aramalar listesinin sonuna geldiğinizde ve [Aşağı] tuşuna tekrar bastığınızda, imleciniz etrafını sarar. Aynı durum son aramalar listesinin başında olduğunuzda ve [Yukarı] tuşuna bastığınızda da olur;
- Birini aradığınızda, o kişinin adı son aramalar listesinin ilk konumuna taşınır ve geri kalanı aşağı itilir;
- Birini aradığınızda, imleciniz ilk konuma taşınır;
- Bir arkadaş adı, son çağrılar listesinde birden çok kez görünemez;
- Son arama listenizi sahte girişlerle doldurabilirsiniz (örneğe bakın);
- Aranacak arkadaş sayısı daha fazla olmayacak
N
.