만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

카드 게임

시간 제한1초메모리 제한1024 MB

요약
아담은 매 라운드마다 카드를 보여줄지 간직할지 정해 N라운드 동안 점수 차이를 최대한 크게 벌려야 합니다.
난이도

보통10점 중 7점

유형
게임 이론, 동적 계획법, 확률
정답자
아직 제출이 없습니다

문제

아담과 빌은 카드 게임을 하고 있다. 덱에는 1부터 KK까지 번호가 적힌 KK장의 카드가 있다. 게임은 NN라운드로 이루어지며, 각 라운드에서 두 플레이어는 점수를 얻으려고 한다. 게임이 끝났을 때 점수가 가장 많은 사람이 이긴다.

각 라운드 전에 덱을 섞는다. 첫 라운드에서 두 플레이어는 카드를 한 장씩 뽑는다. 그다음 빌이 자신의 카드를 보여 준다. 아담은 두 카드를 모두 알고 있는 상태에서 다음 중 하나를 선택한다.

  • 자신의 카드를 보여 준다.
  • 자신의 카드를 유지한다.

아담이 카드를 보여 주기로 하면, 숫자가 더 큰 카드를 낸 사람이 라운드에서 이긴다. 얻는 점수는 두 카드에 적힌 수의 곱이다. 진 사람은 이 라운드에서 점수를 얻지 못한다. 카드는 덱에 다시 넣고 섞으며, 라운드는 여기서 끝난다.

아담이 카드를 유지하기로 하면, 빌의 카드를 덱에 돌려놓고 덱을 섞는다. 다음 라운드(남은 라운드가 있는 경우)에서 빌은 새 카드를 뽑고, 아담은 유지하기로 한 카드를 그대로 사용한다.

빌은 항상 자신의 카드를 보여 주고, 아담은 그에 대해 선택할 수 있다. NN라운드가 끝나면 두 플레이어는 각자 얻은 점수를 합산한다. 아담은 가능한 한 큰 차이로 이기고 싶어 한다. 이 게임을 진행하며 아담의 결정을 내리는 프로그램을 작성하라. 프로그램은 아담이 반드시 이기도록 해야 하며, 점수 차를 가능한 한 크게 만들어야 한다.

예제1

  1. 예제 1

    입력
    1 2
    1 2
    
    예상 출력
    show