카드 게임
시간 제한1초메모리 제한1024 MB
아담은 매 라운드마다 카드를 보여줄지 간직할지 정해 N라운드 동안 점수 차이를 최대한 크게 벌려야 합니다.
문제
아담과 빌은 카드 게임을 하고 있다. 덱에는 1부터 까지 번호가 적힌 장의 카드가 있다. 게임은 라운드로 이루어지며, 각 라운드에서 두 플레이어는 점수를 얻으려고 한다. 게임이 끝났을 때 점수가 가장 많은 사람이 이긴다.
각 라운드 전에 덱을 섞는다. 첫 라운드에서 두 플레이어는 카드를 한 장씩 뽑는다. 그다음 빌이 자신의 카드를 보여 준다. 아담은 두 카드를 모두 알고 있는 상태에서 다음 중 하나를 선택한다.
- 자신의 카드를 보여 준다.
- 자신의 카드를 유지한다.
아담이 카드를 보여 주기로 하면, 숫자가 더 큰 카드를 낸 사람이 라운드에서 이긴다. 얻는 점수는 두 카드에 적힌 수의 곱이다. 진 사람은 이 라운드에서 점수를 얻지 못한다. 카드는 덱에 다시 넣고 섞으며, 라운드는 여기서 끝난다.
아담이 카드를 유지하기로 하면, 빌의 카드를 덱에 돌려놓고 덱을 섞는다. 다음 라운드(남은 라운드가 있는 경우)에서 빌은 새 카드를 뽑고, 아담은 유지하기로 한 카드를 그대로 사용한다.
빌은 항상 자신의 카드를 보여 주고, 아담은 그에 대해 선택할 수 있다. 라운드가 끝나면 두 플레이어는 각자 얻은 점수를 합산한다. 아담은 가능한 한 큰 차이로 이기고 싶어 한다. 이 게임을 진행하며 아담의 결정을 내리는 프로그램을 작성하라. 프로그램은 아담이 반드시 이기도록 해야 하며, 점수 차를 가능한 한 크게 만들어야 한다.