막힌 헬스장

면접 대비

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

요약
단위원 위에 놓인 운동 기구들의 종류와 순서대로 이용해야 하는 기구 목록이 주어질 때, 순서를 지키며 이동하는 최소 총 거리를 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 기하, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

당신은 운동 프로그램을 수행하기 위해 헬스장에 왔다. 프로그램이 정한 순서대로 정확히 운동 기구의 종류를 사용해야 하며, 한 종류의 기구가 여러 대 있을 수 있다.

운동 스테이션은 단위원 둘레에 배치되어 있고, 당신은 원의 중심에서 출발한다. 원 안의 임의의 두 점 사이를 곧장 걸어갈 수 있으며, 같은 점을 여러 번 방문해도 된다. 아래 Figure J.1은 한 예를 보여준다.

Figure J.1: Sample Input 1의 그림. 기구의 종류: [1, 2, 4, 1, 3, 2]

운동은 중요하고 고귀한 일이지만, 오늘날처럼 바쁜 세상에서는 모든 일에서 효율을 추구해야 한다. 주어진 순서에 맞게 운동 스테이션을 방문하는 가장 효율적인 방법을 찾아라.

입력

  • 입력의 첫째 줄에는 프로그램에 있는 운동의 개수 n이 주어진다. (1 ≤ n ≤ 100)
  • 입력의 둘째 줄에는 프로그램에 있는 각 항목의 종류를 나타내는 n개의 정수 t가 공백으로 구분되어 주어진다. (1 ≤ ti ≤ 100) 이 목록의 각 항목에 해당하는 스테이션은 항상 하나 이상 존재한다.
  • 입력의 셋째 줄에는 스테이션의 개수 m이 주어진다. (1 ≤ m ≤ 100)
  • 입력의 넷째 줄에는 각 스테이션의 종류를 나타내는 m개의 정수 q가 공백으로 구분되어 주어진다. (1 ≤ qi ≤ 100)

출력

걸어야 하는 최소 거리를 출력한다. 답은 절대 오차 또는 상대 오차 10−6 이내여야 한다.

예제2

  1. 예제 1

    입력
    6
    1 2 4 1 3 2
    5
    1 4 2 2 3
    
    예상 출력
    7.604395
    
  2. 예제 2

    입력
    5
    4 2 1 3 1
    6
    1 2 1 3 1 4
    
    예상 출력
    5.732051