주사위 균형 맞추기
시간 제한1초메모리 제한512 MB
주사위 여섯 면의 확률이 주어질 때, 한 면의 눈을 바꿔 기댓값을 정확히 3.5로 만들면서 눈의 변화량이 최소가 되도록 한다.
문제
여섯 면에 각각 1부터 6까지의 수가 적힌 주사위가 있다. 모든 면이 같은 확률로 나오면 이 주사위는 공정하고, 그렇지 않으면 치우쳐 있다. 예를 들어 6이 적힌 면이 다른 어느 면보다 두 배 자주 나온다면 치우친 주사위다.
주사위를 한 번 굴렸을 때의 기댓값은 각 면에 적힌 수를 그 면이 나올 확률로 가중 평균한 값이다. 공정한 주사위는 모든 면이 같은 확률로 나오므로 기댓값이 이다.
치우친 주사위 하나가 주어진다. 이 주사위를 공정한 주사위에 가깝게 만들려고 한다. 면 하나를 골라 거기 적힌 수를 지우고 새로운 수를 적을 수 있다. 새로 적는 수는 정수가 아니어도 되고 음수여도 된다. 다음 두 조건을 만족하도록 면과 새로운 수를 정한다.
- 주사위를 굴렸을 때의 기댓값이 정확히 가 된다.
- 수를 바꾼 면에서 원래 적혀 있던 수와 새로 적은 수의 차이가 가능한 한 작다.
이 방법으로 기댓값을 항상 로 맞출 수 있다.
입력
첫째 줄에 음이 아닌 실수 여섯 개 이 공백으로 구분되어 주어진다. 는 현재 가 적혀 있는 면이 나올 확률이다.
여섯 수의 합은 정확히 이고, 각 수는 소수점 아래 여섯 자리 이하의 소수로 주어진다.
출력
새로 적은 수와 원래 적혀 있던 수의 차이의 절댓값 중 가능한 가장 작은 값을 소수점 아래 셋째 자리까지 반올림해서 첫째 줄에 출력한다. 정확히 절반인 값은 올린다.