DDR
면접 대비시간 제한2초메모리 제한1024 MB
N개의 스텝마다 한 개 또는 두 개의 화살표를 순서대로 밟을 때, 두 발이 이동하는 총 유클리드 거리의 최솟값을 구합니다.
문제
바샤는 댄스 댄스 레볼루션을 즐긴다. 화면에 나타나는 순서대로 화살표를 밟되 실수는 한 번도 하지 않고, 두 발이 움직인 총 거리를 최대한 짧게 줄이는 것이 목표다. 바닥에는 크기가 같은 정사각형 발판 다섯 개가 있다. 가운데 발판에는 화살표가 없다. 나머지 네 발판은 가운데를 기준으로 사방에 놓여 있으며 각각 왼쪽, 오른쪽, 위, 아래 화살표다. L, R, U, D로 표기한다. 배치는 아래 그림과 같다.
노래는 N개의 순간으로 이루어진다. 각 순간에는 화살표 한 개 또는 두 개를 동시에 눌러야 한다. 발은 다른 발의 위치와 상관없이 다섯 발판 중 어디에든 놓을 수 있고, 두 발을 같은 발판에 놓아도 된다. 발은 어떤 위치에서든 다른 위치로 옮길 수 있다. 바샤는 두 발을 가운데 발판에 올린 채 시작한다. 노래가 끝나면 두 발은 어디에 있어도 된다. 눌러야 할 화살표는 순서대로 모두 눌러야 한다. 그 순간 누를 필요가 없는 화살표 위에 발을 놓아도 되고, 언제든 한쪽 또는 양쪽 발을 가운데 발판에 둘 수 있다. 화살표를 누르려면 발을 해당 발판의 중심에 놓아야 한다. 발은 점으로 취급한다. 가운데는 (0, 0), 오른쪽은 , 위는 , 왼쪽은 , 아래는 이다. 노래 동안 두 발이 이동해야 하는 유클리드 거리의 합의 최솟값을 구하라.
입력
첫 줄에 정수 N(1 ≤ N ≤ 100,000)이 주어진다. 이어지는 N개 줄의 각 줄은 먼저 그 순간에 눌러야 할 화살표 수 k_i(k_i는 1 또는 2)로 시작한다. 그다음에 L, R, U, D 중에서 서로 다른 k_i개의 문자가 주어진다. k_i가 2이면 공백으로 구분한다.
출력
이동 거리의 합의 최솟값을 실수 하나로 출력한다. 절대 오차 또는 상대 오차가 이하이면 정답으로 인정한다.
힌트
첫 번째 예제에서 바샤는 왼발을 아래 발판으로, 오른발을 위 발판으로 옮겨 처음 두 화살표를 누른다. 그다음 두 발을 대각선으로 각각 왼쪽과 오른쪽 발판으로 옮긴다. 총 거리는 이다. 두 번째 예제에서는 한 발을 위 발판에 놓으면 되고, 이때 거리는 1이다.