아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Nowhere Money

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

요약
각 금액을 T(s) 값들의 합으로 나타내되 슬롯 개수가 최소이고 크기들이 2 이상 차이 나도록 슬롯 크기와 값을 출력한다.
난이도

보통10점 중 6점

유형
그리디, 동적 계획법, 수학, 구현
정답자
아직 제출이 없습니다

문제

노웨어(Nowhere) 마을에서는 동전(coin)과 슬롯(slot)으로 이루어진 화폐를 쓴다. 동전은 크기 1과 크기 2 두 종류가 있으며, 크기 2 동전의 두께는 크기 1 동전의 정확히 두 배다. 사람들은 슬롯 안에 동전을 쌓고, 가득 채운 슬롯을 화폐로 사용한다.

슬롯에는 여러 크기가 있다. 크기가 nn인 슬롯에는 크기 1 동전 nn개와 같은 두께만큼 동전을 쌓을 수 있다. 오직 완전히 가득 찬 슬롯만 정당한 화폐로 인정된다.

가득 찬 슬롯의 가치(value)는 그 슬롯을 동전으로 채우는 서로 다른 방법의 수다. 예를 들어:

  • 크기 1 슬롯: 방법은 11가지뿐이다(크기 1 동전 하나).
  • 크기 2 슬롯: 22가지다(크기 1 동전 두 개, 또는 크기 2 동전 하나).
  • 크기 5 슬롯: 88가지다 — 1 1 1 1 1, 1 1 1 2, 1 1 2 1, 1 2 1 1, 2 1 1 1, 1 2 2, 2 1 2, 2 2 1.

따라서 가득 찬 크기 1, 크기 2, 크기 5 슬롯의 가치는 각각 11, 22, 88 화폐 단위다(가치는 슬롯의 크기에만 의존하며, 어떤 동전을 쓰는지나 배열 방식과는 무관하다). 크기가 nn인 가득 찬 슬롯의 가치를 T(n)T(n)으로 쓴다.

Thinktwice 씨는 식료품점을 운영한다. 그는 손님들이 거스름돈을 편한 형태로 돌려주는 가게를 선호한다는 것을 알아챘고, 간단한 조사를 통해 손님들이 다음 두 규칙에 따라 슬롯으로 구성된 거스름돈을 원한다는 것을 알게 되었다.

  1. 슬롯의 개수가 최소여야 한다.
  2. 두 슬롯의 크기는 서로 적어도 22만큼 차이가 나야 한다. 즉 같은 크기나 바로 인접한 크기의 슬롯이 없어야 하며, 그래야 손님이 슬롯을 쉽게 구분할 수 있다.

주어진 거스름돈 금액에 대해, 이 규칙을 만족하는 슬롯 크기의 수열을 내림차순으로 출력하라. 모든 거스름돈 금액은 다음과 같이 나타낼 수 있다.

X=∑i=1nT(si)=T(s1)+⋯+T(si)+⋯+T(sn),s1≫s2≫⋯≫sn>0X = \sum_{i=1}^{n} T(s_i) = T(s_1) + \cdots + T(s_i) + \cdots + T(s_n), \qquad s_1 \gg s_2 \gg \cdots \gg s_n > 0

여기서

  • XX는 거스름돈 금액,
  • nn은 슬롯의 총 개수,
  • sis_i는 ii번째 슬롯의 크기,
  • TT는 슬롯 크기를 그 가치(채우는 서로 다른 방법의 수)로 대응시키는 함수이며,
  • j≫kj \gg k는 j≥k+2j \ge k + 2를 뜻한다.

예를 들어:

10=T(5)+T(2)=8+210 = T(5) + T(2) = 8 + 2

1,000,000=T(29)+T(25)+T(23)+T(11)+T(9)=832040+121393+46368+144+551{,}000{,}000 = T(29) + T(25) + T(23) + T(11) + T(9) = 832040 + 121393 + 46368 + 144 + 55

입력

입력은 여러 개의 거스름돈 금액으로 이루어지며, 한 줄에 하나씩 주어진다. 각 금액은 5×10185 \times 10^{18} 이하의 양의 정수다. 입력은 파일의 끝(EOF)에서 종료된다.

출력

각 거스름돈 금액마다 네 줄을 출력한다.

  1. 거스름돈 금액 그 자체,
  2. 슬롯 크기를 내림차순으로 공백 하나로 구분하여 출력(모든 슬롯 크기는 9090 이하),
  3. 그에 대응하는 슬롯 가치를 같은 순서로 공백 하나로 구분하여 출력,
  4. 빈 줄.

예제3

  1. 예제 1

    입력
    1
    10
    1000000
    
    예상 출력
    1
    1
    1
    
    10
    5 2
    8 2
    
    1000000
    29 25 23 11 9
    832040 121393 46368 144 55
    
  2. 예제 2

    입력
    1
    2
    3
    4
    5
    6
    7
    8
    
    예상 출력
    1
    1
    1
    
    2
    2
    2
    
    3
    3
    3
    
    4
    3 1
    3 1
    
    5
    4
    5
    
    6
    4 1
    5 1
    
    7
    4 2
    5 2
    
    8
    5
    8
    
  3. 예제 3

    입력
    2
    3
    5
    8
    13
    21
    34
    55
    89
    
    예상 출력
    2
    2
    2
    
    3
    3
    3
    
    5
    4
    5
    
    8
    5
    8
    
    13
    6
    13
    
    21
    7
    21
    
    34
    8
    34
    
    55
    9
    55
    
    89
    10
    89