원기둥 밀어 모으기
시간 제한1초메모리 제한256 MB
바닥에 고정된 순서로 놓인 최대 500개 원기둥을 양쪽에서 밀착시킬 때 벽 사이 최소 거리를 계산합니다.
문제
야적장 평평한 바닥에 무거운 금속 원기둥 여러 개가 놓여 있다. 길이는 모두 같고 지름은 서로 다를 수 있다. 원기둥의 두 밑면은 나란히 정렬되어 있고 축 방향도 모두 같다.
이 원기둥이 차지하는 면적을 최소로 줄이려 한다. 원기둥은 너무 무거워서 들어 올릴 수 없지만 굴리기는 어렵지 않으므로, 양쪽에서 높은 벽 두 개로 밀기로 했다.
원기둥을 끝까지 밀어 붙였을 때 두 벽 사이의 거리가 최소 얼마가 되는지 구하라. 원기둥끼리 서로 닿아도 되고 벽에 닿아도 된다. 원기둥을 바닥에서 들어 올릴 수는 없으므로 놓인 순서는 바꿀 수 없다.

그림 B.1. 두 벽 사이의 원기둥
입력
입력은 테스트 케이스 하나로 이루어진다.
첫째 줄에 원기둥의 개수 ()이 주어진다.
둘째 줄에 원기둥의 반지름 개가 한쪽 끝에서 반대쪽 끝까지 놓인 순서대로 주어진다. 반지름은 모두 이상 이하의 정수다.
출력
원기둥을 끝까지 밀어 붙였을 때 두 벽 사이의 거리를 한 줄에 출력한다.
소수점 아래 일곱째 자리에서 반올림해 소수점 아래 여섯 자리까지 출력한다. 값이 정수여도 소수점 아래 여섯 자리를 모두 적는다. 예를 들어 거리가 이면 40.000000을 출력한다.
힌트
아래 세 그림은 차례로 첫 번째, 두 번째, 세 번째 예제에 해당한다.


