두 생명력과 명중 기준값, 고정 피해량이 주어질 때, 턴제 흡혈 싸움에서 흡혈귀 1이 이길 확률을 구한다.
보통5확률동적 계획법시뮬레이션면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB펠리피뉴는 뱀파이어 클랜들의 전쟁을 다룬 새 RPG 게임에 푹 빠져 있다. 이 게임에서 그는 뱀파이어 캐릭터 하나를 맡아 다른 클랜의 뱀파이어와 끊임없이 싸운다. 전투 결과는 싸우는 캐릭터의 능력치와 평범한 6면체 주사위 하나로 정해진다.
문제를 단순하게 하기 위해 뱀파이어 1과 뱀파이어 2, 두 뱀파이어의 싸움만 생각하자. 두 뱀파이어에게는 각각 생명력이 있으며, 이를 EV1, EV2라고 부른다. 여기에 공격력 AT와 피해량 D가 정해진다.
전투는 다음과 같이 턴 단위로 진행된다. 매 턴 주사위를 한 번 굴려서 나온 눈이 AT 이하이면 뱀파이어 1이 그 턴을 이기고, 그렇지 않으면 뱀파이어 2가 이긴다. 턴을 이긴 쪽은 상대의 생명력을 D만큼 빨아들인다. 즉 진 쪽의 생명력이 D 줄고 이긴 쪽의 생명력이 D 늘어난다. 전투는 어느 한 뱀파이어의 생명력이 0 이하가 될 때까지 계속된다.
예를 들어 EV1=7, EV2=5, AT=2, D=4라고 하자. 주사위를 굴려 3이 나왔다면 뱀파이어 2가 턴을 이긴다. 따라서 뱀파이어 1의 생명력 EV1에서 4를 빼고 뱀파이어 2의 생명력 EV2에 4를 더하므로 새 값은 EV1=3, EV2=9가 된다. 다음 턴에 뱀파이어 2가 또 이기면 전투가 끝난다.
AT와 D는 전투 내내 변하지 않으며, EV1과 EV2만 바뀐다.
펠리피뉴는 이 게임을 무척 좋아하지만 전투가 너무 오래 걸린다고 생각한다. 그래서 싸울 가치가 있는지 판단하려고 이길 확률을 미리 알고 싶어 한다. EV1, EV2의 초깃값과 AT, D가 주어질 때 뱀파이어 1이 전투에서 이길 확률을 구하는 프로그램을 작성하라.
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 한 줄이며, 정수 EV1, EV2, AT, D가 공백으로 구분되어 주어진다. (1≤EV1,EV2≤10, 1≤AT≤5, 1≤D≤10)
입력의 끝은 0 네 개가 공백으로 구분된 줄로 표시한다. 이 줄은 처리하지 않는다.
각 테스트 케이스마다 한 줄에 실수 하나를 출력한다. 이 수는 뱀파이어 1이 전투에서 이길 확률을 백분율로 나타낸 값이며, 소수점 아래 첫째 자리까지 출력한다.
정확한 확률값을 소수점 아래 둘째 자리에서 반올림한다. 둘째 자리 이하가 정확히 절반인 경우(예: 정확히 56.25)에는 올림하여 56.3을 출력한다.