만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

신발

시간 제한2초메모리 제한2048 MB

요약
옷장에 있는 신발 n켤레와 복도 칸 m개가 주어질 때, q일 동안 원하는 신발을 꺼내는 최소 총 시간을 구합니다.
난이도

보통10점 중 7점

유형
그리디, 시뮬레이션, 배열
정답자
아직 제출이 없습니다

문제

Lana에게는 번호가 11부터 nn까지 매겨진 신발 nn켤레가 있다. 모든 신발은 긴 신발장에 보관되어 있다. 처음에 번호 11번 신발은 신발장 맨 위(현관 가까이)에 있고, 번호 nn번 신발은 맨 아래(현관에서 먼 쪽)에 있다.

다음 qq일 중 ii번째 날에 Lana는 번호 aia_i번 신발을 신고 싶어 한다. 신발장에서 신발 한 켤레를 꺼내려면 먼저 그보다 현관 쪽에 있는 신발들을 모두 꺼내야 한다. 원하는 신발을 꺼낸 뒤에는 나머지 신발을 원래 순서대로 신발장에 다시 넣는다. 신발장에서 신발 한 켤레를 꺼내는 데 11초가 걸리며, 신발을 다시 넣는 데는 추가 시간이 들지 않는다.

하루가 끝나면 Lana는 신발을 벗고 다음 중 하나를 한다.

  • 신발장 맨 위에 다시 넣는다.
  • 현관 복도에 둔다. 단, 복도에 빈자리가 있어야 한다.

현관 복도에는 최대 mm켤레까지 둘 수 있다. 또한 Lana는 언제든지(원하는 신발을 꺼내는 중인 경우는 제외하고) 복도의 신발을 신발장 맨 위로 옮길 수 있다. 그날 시작할 때 원하는 신발이 이미 복도에 있으면, Lana는 꺼내는 시간 없이 바로 신을 수 있다.

Lana는 바쁘며, 신발을 꺼내는 데 쓰는 총 시간을 최소화하고 싶어 한다. 다음 qq일 동안 신발을 꺼내는 데 필요한 최소 시간을 구하시오.

입력

첫 줄에 신발의 수 nn, 복도의 칸 수 mm, 날짜 수 qq가 주어진다 (1≤n≤2⋅1051 \le n \le 2 \cdot 10^5, 0≤m≤2⋅1050 \le m \le 2 \cdot 10^5, 1≤q≤1061 \le q \le 10^6).

둘째 줄에는 qq개의 정수 aia_i(1≤ai≤n1 \le a_i \le n)가 주어지며, aia_i는 ii번째 날에 Lana가 신고 싶은 신발의 번호이다.

출력

모든 qq일 동안 신발을 꺼내는 데 걸리는 최소 시간을 한 줄에 출력한다.

힌트

첫 번째 예제에 대한 설명이다.

첫째 날 Lana는 신발장에서 번호 22번 신발을 꺼낸다. 이 작업에 22초가 걸린다. 하루가 끝나면 그 신발을 복도에 두고 계속 그대로 둔다.

이제 신발장에서 11번 신발을 꺼내야 할 때마다 11초가 걸린다. 반면 22번 신발이 필요하면 복도에서 바로 신을 수 있어 시간이 들지 않는다.

Lana가 신발을 꺼내는 데 쓰는 총 시간은 2+1+0+1+0+1=52 + 1 + 0 + 1 + 0 + 1 = 5초이다.

예제3

  1. 예제 1

    입력
    5 1 6
    2 1 2 1 2 1
    
    예상 출력
    5
    
  2. 예제 2

    입력
    6 0 4
    5 4 3 4
    
    예상 출력
    17
    
  3. 예제 3

    입력
    3 2 7
    1 2 3 2 3 1 3
    
    예상 출력
    4