Logo
(追記) (追記ここまで)

27169번 - 100% Orange Juice! 스페셜 저지

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB92352860.870%

문제

《100% Orange Juice》는 6면체 주사위를 이용해서 최대 4ドル$명의 플레이어가 함께 플레이할 수 있는 보드게임 형태의 아케이드 게임입니다. 플레이어는 캐릭터를 하나 선택하고, 각자의 목적(스타 200ドル$개 획득, 상대방을 14ドル$번 쓰러트리기 등)을 달성하기 위해 플레이하며, 가장 먼저 목적을 달성한 플레이어가 승리합니다.

이 보드게임에는 전투 시스템이 존재합니다. 캐릭터마다 4ドル$개의 고유의 능력치 체력, 공격, 방어, 회피를 갖고 있습니다. 전투는 선공과 후공이 일대일로 수행하며 다음과 같은 방식으로 진행됩니다.


전투 로직

  1. 선공이 공격수, 후공이 수비수가 된다.
  2. 공격수가 주사위를 던진다. $\max(1, ($주사위$,円,円+,円,円$공격$))$ 값이 이번 공격수의 공격의 공격력이다.
  3. 수비수는 공격력과 자신의 방어, 회피 능력치를 보고 방어와 회피 중 무엇을 수행할지 결정한다.
    • (수비수가 방어를 선택했을 시) 수비수가 주사위를 던진다. $\max(1, ($주사위$,円,円+,円,円$방어$))$ 값이 이번 수비수의 방어력이다. $\max(1,,円$공격력$,円,円-,円,円$방어력$)$ 만큼의 체력을 잃는다.
    • (수비수가 회피를 선택했을 시) 수비수가 주사위를 던진다. $\max(1, ($주사위$,円,円+,円,円$회피$))$ 값이 이번 수비수의 회피력이다. 만약 회피력이 공격력보다 크면 회피에 성공한다. 만약 회피력이 공격력보다 작거나 같다면 회피에 실패하고, 공격력만큼의 체력을 잃는다.
  4. 수비수의 체력이 0ドル$ 이하가 되면 공격수가 승리한다.
  5. 공격수와 수비수의 역할을 바꾼다.
  6. 선공과 후공 각각 공격을 한 번씩 수행하면 전투를 종료한다.

전투 시 주사위 운도 중요하지만, 캐릭터의 능력치도 매우 중요합니다. 따라서 캐릭터 간의 전투 밸런스를 측정해보기 위해 다음과 같이 밸런스 측정을 위한 AI 로직을 만들고, AI끼리 전투를 시켜봄으로써 전투 밸런스를 측정해볼 수 있습니다.


밸런스 측정을 위한 AI 로직

(전투 로직에서 추가되거나 변경된 규칙의 경우 굵게 표시)

  1. 선공이 공격수, 후공이 수비수가 된다.
  2. 공격수가 주사위를 던진다. $\max(1, ($주사위$,円,円+,円,円$공격$))$ 값이 이번 공격수의 공격의 공격력이다.
  3. 수비수는 공격력과 자신의 방어, 회피 능력치를 보고 방어와 회피 중 무엇을 수행할지 결정한다.
    • 만약 현재 체력이 $\max(1,,円$공격력$,円,円-,円,円(6 +,円,円$방어$))$ 이하이면 회피를 선택한다.
    • 그 외에 만약 공격력이 $\max(1, 1 +,円,円$회피$)$ 미만이면 회피를 선택한다.
    • 그 외에 만약 공격력이 현재 체력 이상이면 방어를 선택한다.
    • 그 외에 만약 공격력이 $\max(1, 3 +,円,円$회피$)$ 미만이면 회피를 선택한다.
    • 그 외의 경우 방어를 선택한다.
    • (수비수가 방어를 선택했을 시) 수비수가 주사위를 던진다. $\max(1, ($주사위$,円,円+,円,円$방어$))$ 값이 이번 수비수의 방어력이다. $\max(1,,円$공격력$,円,円-,円,円$방어력$)$ 만큼의 체력을 잃는다.
    • (수비수가 회피를 선택했을 시) 수비수가 주사위를 던진다. $\max(1, ($주사위$,円,円+,円,円$회피$))$ 값이 이번 수비수의 회피력이다. 만약 회피력이 공격력보다 크면 회피에 성공한다. 만약 회피력이 공격력보다 작거나 같다면 회피에 실패하고, 공격력만큼의 체력을 잃는다.
  4. 수비수의 체력이 0ドル$ 이하가 되면 공격수가 승리한다.
  5. 공격수와 수비수의 역할을 바꾼다.
  6. 승자가 정해질 때까지 위 과정을 반복한다.

선공과 후공의 캐릭터 능력치가 주어지면 밸런스 측정을 위한 AI 로직을 따라서 전투를 수행했을 때 선공이 승리할 확률을 계산해봅시다.

입력

첫 번째 줄에는 선공 캐릭터의 체력, 공격, 방어, 회피를 나타내는 정수 값이 차례로 주어집니다.

두 번째 줄에는 후공 캐릭터의 체력, 공격, 방어, 회피를 나타내는 정수 값이 차례로 주어집니다.

출력

선공이 승리할 확률을 출력합니다.

출력한 값과 정답과의 절대 오차 또는 상대 오차가 10ドル^{-6}$ 이하여야 합니다.

제한

  • 1ドル \le,円,円$체력$,円,円\le 100$
  • $-2 \le,円,円$공격, 방어, 회피$,円,円\le 2$
  • 6면체 주사위에서 각각의 값이 나올 확률은 $\frac{1}{6}$ 으로 동일

예제 입력 1

4 1 -1 2
5 1 -1 1

예제 출력 1

0.549831898994

예제 입력 2

5 1 -1 1
4 1 -1 2

예제 출력 2

0.641504155052

예제 입력 3

45 0 2 -1
73 -2 0 2

예제 출력 3

0.500277608641

예제 입력 4

1 -2 -2 -2
10 2 2 2

예제 출력 4

0.000000002084

예제 입력 5

1 0 0 2
1 0 0 2

예제 출력 5

0.580645161290

선공이 승리할 확률은 $\frac{18}{31}$입니다.

예제 입력 6

4 -2 -2 0
1 2 0 0

예제 출력 6

0.462962962963

선공이 승리할 확률은 $\frac{25}{54}$입니다.

힌트

출처

Contest > BOJ User Contest > 보드게임컵 > 보드게임컵 K번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /