세단뛰기
면접 대비시간 제한2초메모리 제한512 MB
위치가 [30.0, 30.2]에 들어오는 첫 번째 걸음을 찾고, 그로부터 최소 3걸음 뒤 위치 중 가장 작은 값을 30.0에서 뺀 거리를 구한다. 해당하는 걸음이 없으면 0을 출력한다.
문제
세단뛰기는 도움닫기를 한 다음 연달아 세 번 뛰는 종목이다. 기록은 첫 번째 도약을 시작한 지점부터 세 번째 도약이 끝난 지점까지의 거리다. 멀리뛰기와 마찬가지로 첫 도약은 정해진 구름판 위에서 시작해야 한다. 착지한 뒤에 뒤로 넘어지면 모래에 남은 자국 가운데 가장 가까운 지점까지만 기록으로 인정한다. 발로 착지했더라도 뒤로 엉덩방아를 찧었다면 엉덩이가 닿은 지점까지가 기록이다.
이 문제에서는 몸의 일부가 바닥에 닿은 위치가 순서대로 주어진다. 구름판은 30.0부터 30.2까지이고 양 끝을 포함한다. 뒤로 돌거나 뒤로 넘어질 수 있으므로 위치는 커질 수도 있고 작아질 수도 있다.
세단뛰기는 몸의 일부가 처음으로 구간 안에 닿은 걸음에서 시작한다. 기록은 실제로 닿은 위치가 아니라 30.0에서부터 재며, 시작한 걸음보다 3걸음 이상 뒤인 걸음 가운데 위치가 가장 작은 값까지의 거리다. 이 거리는 음수일 수 있다. 구간에 한 번도 닿지 않았거나 닿은 뒤로 3걸음을 더 밟지 않았다면 기록은 0이다.
입력
첫 줄에 데이터 집합의 개수 가 주어진다. 이어서 개의 데이터 집합이 다음 형식으로 주어진다.
각 데이터 집합의 첫 줄에는 밟은 걸음 수 이 주어진다 (). 다음 줄에는 실수 개 이 주어진다 (). 는 번째 걸음에서 트랙이나 모래밭에 닿은 위치다.
출력
각 데이터 집합마다 먼저 Data Set x:를 한 줄에 출력한다. x는 데이터 집합의 번호이고 1부터 센다. 다음 줄에 세단뛰기 기록을 소수점 아래 둘째 자리로 반올림해 출력한다. 정확히 중간인 값은 0에서 먼 쪽으로 반올림하고, 반올림한 결과가 0이면 부호 없이 0.00을 출력한다. 각 데이터 집합 뒤에 빈 줄을 하나 출력한다.