10962. Машинки


Відправити розв'язок

Бали: 100
Time limit: 1.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Петрик, якому три роки, дуже любить грати з машинками. Всього у Петрика \(N\) різних машинок, які зберігаються на полиці шафи так високо, що він сам не може до них дотягнутися.

Одночасно на підлозі кімнати може бути не більше \(K\) машинок. Петрик грає з однією з машинок на підлозі і якщо він хоче погратися з іншою машинкою, яка також знаходиться на підлозі, то дотягується до неї сам. Якщо машинка знаходиться на полиці, то він звертається за допомогою до мами. Мама може дістати машинку з полиці і водночас поставити на полицю будь-яку машинку з підлоги. Мама дуже добре знає свою дитину і може передбачити послідовність, у якій Петрик захоче гратися з машинками. При цьому, щоб не заважати грі Петрика, вона хоче здійснити якнайменше операцій з підйому машинки з підлоги, кожен раз правильно вибираючи машинку, яку слід прибрати на полицю.

Ваше завдання полягає в тому, щоб визначити мінімальну кількість операцій. Перед тим, як Петрик почав гратися, всі машинки стоять на полиці.

Формат вхідних даних

У першому рядку містяться три числа \(𝑁\) , \(𝐾\) і \(𝑃\) (\(1≤𝐾≤𝑁≤100000\) , \(1≤𝑃≤500000 \)).

У наступних рядках записані номери машинок у тому порядку, в якому Петрик захоче гратися з ними.

Формат вихідних даних

Виведіть число: мінімальну кількість операцій, яку треба здійснити мамі Петрика.

Пояснення прикладу

  • Операція 1: зняти машинку 1
  • Операція 2: зняти машинку 2
  • Операція 3: підняти машинку 2 і зняти машинку 3
  • Операція 4: підняти машинку 3 або 1 і зняти машинку 2

Приклад вхідних даних

3 2 7
1
2
3
1
3
1
2

Приклад вихідних даних

4

Коментарі

Ще немає коментарів.