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

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

푸앙이와 러닝머신

면접 대비

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

요약
정수 초에 속력을 0, 1, 4, 8m/s 중 하나로 바꿀 수 있을 때, 정확히 T초 동안 X미터를 달리기 위한 최소 버튼 조작 횟수와 그 시각을 구한다.
난이도

보통10점 중 6점

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

문제

푸앙이는 러닝머신을 즐겨 탄다. 러닝머신에는 다음과 같은 속력을 조작할 수 있는 네 가지 버튼이 있다.

  • 정지(초당 00미터)
  • 초당 11미터
  • 초당 44미터
  • 초당 88미터

초당 DD미터로 속력을 조작할 수 있는 버튼은 DD라고 부른다.

푸앙이는 효과적인 운동을 위해 거리 XX미터를 정확히 시간 TT초에 완주하는 목표를 세웠다. 그런데 푸앙이는 버튼을 조작하는 것이 귀찮아 최소한의 횟수로 버튼을 누르려고 한다.

푸앙이를 도와 언제, 무슨 버튼을 눌러야 하는지 알려주는 프로그램을 작성하자.

운동 시각은 00초부터이며, 00초일 때 러닝머신은 정지해있다. 버튼은 정수 초에만 누를 수 있고, 11초에 최대 한 번만 누를 수 있다.

입력

첫 번째 줄에 정수 XX와 TT가 공백으로 구분되어 주어진다. (1≤X,T≤109)(1 \le X, T \le 10^9)

출력

주어진 시간동안 정확히 목표 거리를 이동하는 것이 가능하다면, 첫 번째 줄에 버튼을 눌러야 하는 최소 횟수 NN을 출력하고, 다음 NN개의 줄에 걸쳐 버튼을 누르는 시각과 버튼의 종류를 공백으로 구분하여 시간 순서대로 출력한다.

가능한 방법이 여러가지라면 그 중 하나를 출력한다.

만약 주어진 시간동안 정확히 목표 거리를 이동하는 것이 불가능하다면 −1-1을 출력한다.

예제4

  1. 예제 1

    입력
    10 3
    
    예상 출력
    2
    0 8
    1 1
    
  2. 예제 2

    입력
    10 2
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    20 50
    
    예상 출력
    1
    45 4
    
  4. 예제 4

    입력
    20 3
    
    예상 출력
    2
    0 8
    2 4