만드는 중입니다

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

Dart-a-Mania

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

요약
301 다트 게임에서 시작 점수가 주어질 때, 세 번의 다트(각각 0, 1~20, 더블, 트리플, 불스아이 50)로 정확히 0을 만드는 조합의 수와 순열의 수를 센다.
난이도

보통10점 중 4점

유형
완전 탐색, 조합론, 구현
정답자
아직 제출이 없습니다

문제

다트 게임에는 여러 가지 변형이 있다. 그중 하나는 301 게임이다. 301 게임에서 각 플레이어는 301점으로 시작한다(이름도 여기서 나왔다). 플레이어는 자기 차례에 다트를 세 개 던져 얻은 점수를 현재 점수에서 뺀다. 예를 들어 현재 점수가 272인 플레이어가 다트 세 개로 55점을 얻으면 새 점수는 217이 된다. 던진 다트는 다트판에서 1부터 20까지 번호가 붙은 영역에 맞을 수 있다. (값 0은 다트판을 완전히 벗어났거나 다트를 던지지 않기로 했음을 뜻한다.) 이 영역 중 하나에 맞은 다트는 적힌 수만큼, 적힌 수의 두 배만큼, 또는 적힌 수의 세 배만큼 점수를 낸다. 예를 들어 17이 적힌 영역에 맞은 다트 하나로 17점, 34점, 51점을 얻을 수 있다. 다트 하나로 점수를 얻는 세 번째 방법은 불스아이를 맞히는 것이며 50점이다. (불스아이 점수를 두 배 또는 세 배로 하는 규칙은 없다.)

점수를 정확히 0으로 만든 첫 번째 플레이어가 이긴다. 현재 점수보다 많은 점수를 얻으면 "버스트"라고 하며, 새 점수는 직전 점수로 되돌아간다.

플레이어의 현재 점수가 주어졌을 때, 다트 세 개를 던져 플레이어의 점수를 정확히 0으로 만드는(즉 게임에서 이기는) 모든 조합과 순열을 계산하는 프로그램을 작성하라. 프로그램의 출력에는 찾은 조합의 수와 순열의 수가 들어가야 한다.

예를 들어 현재 점수가 2라면 조합은 두 가지, 순열은 여섯 가지다. 조합은 1) 다트 하나로 2점을 얻고 나머지 둘로 0점을 얻는 경우, 2) 서로 다른 다트 두 개로 1점씩 얻고 세 번째 다트로 0점을 얻는 경우다. 얻는 순서는 중요하지 않다.

순열에서는 순서가 중요하다. 따라서 여섯 가지 순열은 다음과 같다.

Dart 1:200110
Dart 2:020101
Dart 3:002011

(참고: 프로그램은 실제 순열과 조합을 출력하지 않고 각각의 총개수만 출력한다.)

입력

입력은 여러 플레이어의 현재 점수를 나타내는 정수(각각 999 이하)의 목록이며 한 줄에 하나씩 주어진다. 0 이하의 값은 입력의 끝을 뜻한다.

출력

입력의 각 양의 정수마다 출력에 2줄 또는 3줄이 쓰인다.

점수를 0으로 만들 수 있으면 다음 줄을 출력한다.

NUMBER OF COMBINATIONS THAT SCORES x IS c.
NUMBER OF PERMUTATIONS THAT SCORES x IS p.

여기서 x는 플레이어의 점수이고, c와 p는 각각 가능한 조합의 총개수와 순열의 총개수다.

플레이어의 점수를 0으로 만드는 것이 불가능하면 다음 줄을 출력한다.

THE SCORE OF x CANNOT BE MADE WITH THREE DARTS.

위 줄(들)을 출력한 뒤, 서로 다른 점수의 출력을 구분하기 위해 별표 70개로 이루어진 줄을 출력한다. 출력의 끝에는 "END OF OUTPUT"이라는 메시지가 나와야 한다.

예제1

  1. 예제 1

    입력
    162
    175
    2
    68
    211
    114
    -100
    
    예상 출력
    NUMBER OF COMBINATIONS THAT SCORES 162 IS 7.
    NUMBER OF PERMUTATIONS THAT SCORES 162 IS 28.
    **********************************************************************
    THE SCORE OF 175 CANNOT BE MADE WITH THREE DARTS.
    **********************************************************************
    NUMBER OF COMBINATIONS THAT SCORES 2 IS 2.
    NUMBER OF PERMUTATIONS THAT SCORES 2 IS 6.
    **********************************************************************
    NUMBER OF COMBINATIONS THAT SCORES 68 IS 187.
    NUMBER OF PERMUTATIONS THAT SCORES 68 IS 1056.
    **********************************************************************
    THE SCORE OF 211 CANNOT BE MADE WITH THREE DARTS.
    **********************************************************************
    NUMBER OF COMBINATIONS THAT SCORES 114 IS 82.
    NUMBER OF PERMUTATIONS THAT SCORES 114 IS 445.
    **********************************************************************
    END OF OUTPUT