Мені потрібно зателефонувати друзям, але кнопки бездротового телефону не працюють належним чином. Єдині кнопки, які я можу натиснути, - це [Вгору], [Вниз] та [Дзвінок]. [Вгору] та [Вниз] можна використовувати для навігації в останніх дзвінках, а [Виклик] можна використовувати для виклику обраного імені. У моєму телефоні є список, в якому приймаються Nостанні дзвінки, і я знаю, що всі друзі, яким мені потрібно дзвонити, є у цьому списку.
Завдання:
Ви отримаєте номер Nта список імен L:
N- кількість останніх дзвінків, які мій телефон може запам'ятати;Lмає імена в тому порядку, який мені потрібно зателефонувати.
Ви повинні вивести кількість натискань кнопок, які мені потрібно зробити, щоб оптимально розташувати список останніх дзвінків.
Приклад:
-> Введення:
Подзвонив Ганні, Бобу, а потім знову Анні. З останніми списками дзвінків розміром 5.
5
Anna
Bob
Anna
-> Вихід:
Можливе оптимальне розташування: Anna, Foo, Bar, Foobar, Bob
5 # Key presses: [Call] Anna, [Up] + [Call] Bob, [Down] + [Call] Anna
Більше тестових випадків:
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
Правила:
- Ваш курсор завжди починатиметься в першій позиції списку;
- Ви можете взяти дані
NтаLз будь-якого джерела: клавіатури, параметрів, файлу тощо; - Імена у списку можуть бути у будь-якому розумному форматі, такі як: рядки, цілі числа, символи;
- Коли ви доходите до кінця списку останніх дзвінків і знову натискаєте [Вниз], курсор загортається. Те саме відбувається, коли ви перебуваєте на початку списку останніх дзвінків і натискаєте [Вгору];
- Коли ви зателефонуєте комусь, ім’я цієї особи буде перенесено на перше місце у списку останніх дзвінків, а решта буде натиснуто вниз;
- Коли ви телефонуєте комусь, ваш курсор буде переміщений на перше місце;
- Ім'я друга не може з’являтися не один раз у списку останніх дзвінків;
- Ви можете заповнити список останніх дзвінків фіктивними записами (див. Приклад);
- Кількість друзів для дзвінків не буде більше
N.