19세기의 연필들

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

요약
각 N에 대해 4센트짜리, 한 개에 2개, 한 개에 4개 연필의 양의 개수 (a, b, c)가 a+b+c = N과 4a + b/2 + c/4 = N을 만족하는 경우를 모두 찾는다.
난이도

쉬움10점 중 3점

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

문제

"오토마톤(automaton)"은 이론 전산학의 개념이 되기 전에는 "마치 스스로 동력을 가진 것처럼 움직이도록 만든 기계 장치, 즉 로봇"을 뜻했다. 점을 쳐 주는 인형이 그 예이며, 여러 바구니에서 연필을 꺼내 배출구로 옮겨 파는 기계 연필 장수도 이런 장치로 볼 수 있다.

한 라디오 퀴즈 프로그램이 청취자들에게 다음 문제를 낸 적이 있다.

기침과 감기 치료제를 광고하던 19세기의 광고 카드에서: 어떤 사람이 20센트로 연필 20자루를 사는데, 세 종류의 연필을 받는다. 어떤 연필은 한 자루에 4센트이고, 어떤 연필은 1페니(= 1센트)에 두 자루이며, 나머지는 1페니에 네 자루이다. 이 사람은 각 종류의 연필을 몇 자루씩 받는가?

이후 한 가지 조건이 덧붙었다: 올바른 해는 각 종류의 연필을 적어도 한 자루씩 포함해야 한다.

이 문제를 20센트로 20자루를 사는 경우에서 일반화한다. 주어진 정수 NN에 대해, 어떤 사람이 NN센트로 연필 NN자루를 사되 위의 세 종류(한 자루에 4센트, 1페니에 두 자루, 1페니에 네 자루)를 각각 적어도 한 자루씩 포함하도록 한다. 프로그램은 이런 경우를 여러 개 처리한다. 각 경우에 대해 모든 해를 출력하고, 해가 없으면 "No solution found."를 출력한다. 한 경우 안에서는 4센트짜리 연필의 개수가 증가하는 순서로 해를 정렬한다.

입력

각 줄에는 정수 NN (2≤N≤2562 \le N \le 256)이 하나씩 주어진다. 입력은 00이 적힌 줄로 끝나며, 이 줄은 처리하지 않는다. 경우의 수는 최대 32개이다.

출력

각 경우에 대해 먼저 "Case kk:" 줄을 출력한다. 여기서 kk는 1부터 시작하는 경우 번호이다. 이어서 "NN pencils for NN cents" 줄을 출력한다. 그다음 해를 출력한다.

각 해는 다음과 같은 세 줄 형식으로 출력한다.

<a> at four cents each
<b> at two for a penny
<c> at four for a penny

여기서 aa는 4센트짜리 연필의 개수, bb는 1페니에 두 자루짜리 연필의 개수, cc는 1페니에 네 자루짜리 연필의 개수이다. 한 경우 안에서 해는 aa가 증가하는 순서로 정렬하며, aa가 정해지면 bb와 cc도 함께 정해진다. 연속한 두 해 사이에는 빈 줄을 하나 넣는다. 해가 없는 경우에는 그 자리에 "No solution found." 한 줄만 출력한다. 연속한 두 경우 사이에도 빈 줄을 하나 넣는다.

예제1

  1. 예제 1

    입력
    10
    20
    40
    0
    
    예상 출력
    Case 1:
    10 pencils for 10 cents
    No solution found.
    
    Case 2:
    20 pencils for 20 cents
    3 at four cents each
    15 at two for a penny
    2 at four for a penny
    
    Case 3:
    40 pencils for 40 cents
    6 at four cents each
    30 at two for a penny
    4 at four for a penny
    
    7 at four cents each
    15 at two for a penny
    18 at four for a penny