만드는 중입니다

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

터치바 타이핑

면접 대비

메모리 제한1024 MB

요약
한 줄짜리 키보드 K에서 단어 S의 글자를 순서대로 모두 입력하는 데 필요한 손가락 최소 이동 시간을 구합니다.
난이도

보통10점 중 5점

유형
동적 계획법, 배열
정답자
아직 제출이 없습니다

문제

Crowdsource 앱의 Glide Typing 과제는 새로운 Google 키보드를 사용해 손가락을 떼지 않고 키 위로 미끄러뜨리며 단어를 입력한다. 아래 애니메이션을 참고하라.

Glide Typing을 더 어렵게 만들기 위해, 일반 키보드 대신 모든 키가 한 줄로 늘어선 선형 키보드 K\mathbf{K}를 사용한다.

길이가 N\mathbf{N}인 단어 S\mathbf{S}를 입력하려 한다. 키보드 K\mathbf{K}에는 M\mathbf{M}개의 키가 있다. 키는 S\mathbf{S}의 모든 문자를 포함하지만, 같은 문자를 가진 키가 여럿일 수 있다. 모든 문자와 키는 정수로 표현된다.

손가락은 어느 키에서든 시작해도 된다. 인접한 키로 손가락을 옮기는 데 1초가 걸린다. Glide Typing에서는 키를 누르는 동작이 없다. 손가락이 문자 K_i\mathbf{K\_i}를 가진 키 ii에 있고 인덱스 jj의 문자 K_j\mathbf{K\_j}를 입력하려면, 손가락을 키 ii에서 키 jj로 미끄러뜨린다. 이때 ∣j−i∣\lvert j-i \rvert초가 걸린다. 손가락이 키 xx에 있으면 K_x\mathbf{K\_x}는 몇 번이든 즉시 입력할 수 있다. S\mathbf{S}는 한 문자씩 순서대로 입력해야 한다. 즉 각 1≤i≤N−11 \le i \le \mathbf{N}-1에 대해 S_i\mathbf{S\_i}를 S_i+1\mathbf{S\_{i+1}}보다 먼저 입력한다.

예를 들어 S\mathbf{S}의 문자가 1, 2, 2, 3, 4라고 하자. 인덱스 ii에 있는 문자 1의 키에 손가락을 두고 시작할 수 있다. 그다음 인덱스 jj에 있는 문자 2의 키로 미끄러뜨리면 ∣j−i∣\lvert j-i \rvert초가 걸린다. 문자 2를 두 번 입력하는 데는 ∣j−j∣=0\lvert j-j \rvert = 0이므로 추가 시간이 없다. 이후 나머지 문자도 같은 방식으로 순서대로 미끄러뜨려 입력한다.

S\mathbf{S}를 입력하는 데 필요한 최소 시간을 구하라.

입력

첫 줄에 테스트 케이스의 수 T\mathbf{T}가 주어진다. 이어서 T\mathbf{T}개의 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 줄에는 단어 S\mathbf{S}의 길이 N\mathbf{N}이 주어진다.

둘째 줄에는 N\mathbf{N}개의 정수가 주어지며, 각 S_i\mathbf{S\_i}는 ii번째 문자이다.

셋째 줄에는 키보드 K\mathbf{K}의 길이 M\mathbf{M}이 주어진다.

넷째 줄에는 M\mathbf{M}개의 정수가 주어지며, 각 K_i\mathbf{K\_i}는 ii번째 키의 문자이다.

출력

각 테스트 케이스마다 한 줄에 Case #$x$: $y$ 형식으로 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 키보드 K\mathbf{K}에서 S\mathbf{S}를 입력하는 데 필요한 최소 시간이다.

제한

  • 1≤T≤1001 \le \mathbf{T} \le 100.
  • S\mathbf{S}의 모든 문자는 K\mathbf{K}에 최소 한 번 나타난다.
  • 1≤K_i≤25001 \le \mathbf{K\_i} \le 2500.
  • 1≤S_i≤25001 \le \mathbf{S\_i} \le 2500.

예제2

  1. 예제 1

    입력
    2
    5
    1 2 3 2 1
    3
    1 2 3
    3
    1 1 1
    2
    2 1
    
    예상 출력
    Case #1: 4
    Case #2: 0
    
  2. 예제 2

    입력
    2
    4
    2 1 4 1
    8
    4 1 5 2 1 3 5 4
    3
    1 2 3
    8
    2 3 5 1 4 6 7 2
    
    예상 출력
    Case #1: 4
    Case #2: 4