프로그램 명: koi4u_yeafe(special judge)
제한시간: 1 초

디자이너 ‘예처르킴’은 자신이 만든 문장에서 단어를 검색하는 ‘최강의 검색 프로그램’이 너무 오래 걸리자 고심에 빠졌다.

‘왜 내가 짠 프로그램은 이렇게 느린거지?’ 고민하던 ‘예처르킴’은 두 번이나 자신의 소스코드를 검토해봤으나 원인을 찾지 못 했다. 그는 생각했다. ‘내 코드에 문제는 없어! 나는 검색을 빠르게 하는 알고리즘을 제대로 알고 있다고!! 이건 이 프로그래밍 언어가 매우 느리기 때문이야! 내가 더 빠른 프로그래밍 언어를 디자인해보겠어!’

하지만 기존 프로그래밍 언어보다 더 빠른 프로그래밍 언어를 새로 만들기란 매우 힘든 일이다. 게다가 ‘예처르킴’은 디자이너일 뿐 프로그래머는 아니다. 그러다 보니 언어를 단순하게, 더 단순하게 디자인하게 되었다. 최종적으로 ‘예처르킴’이 디자인한 언어의 이름을 그의 본명을 따 ‘예철 언어’ 라고 지었다.

‘예철 언어’는 26개의 레지스터(eax, ebx, …, ezx)를 사용하고 언어에 있는 명령어는 다음과 같다.

‘예철 언어’의 최종 목표이자 당신이 해야 되는 일은 처음 eax의 값이 1일 때 명령어를 사용하여 26개 중 어느 한 레지스터에 자연수 N이 들어있어야 한다.

예를 들어 N=41일 때 다음과 같이 두 번의 명령을 수행하면 eax에는 41이 들어있게 된다.

  1. lea ebx, [eax + 4*eax] // ebx = 1+4*1 = 5
  2. lea eax, [eax + 8*ebx] // eax = 1+8*5 = 41
‘예처르킴’은 본래 이 프로그래밍 언어의 디자인 목적이 ‘빠른 속도’ 였으므로 최소 몇 번의 명령어를 사용하면 주어진 자연수 N을 만들지 궁금해 했고, 당신은 ‘예처르킴’의 부탁을 받아 그 횟수와 그때의 명령어 사용 방법을 알아내야 한다.

입력

첫 줄에 당신이 최종 적으로 만들어야 하는 자연수 N이 주어진다. (1 ≤ N ≤ 255)

출력

입출력 예

입력 
 
41
 
출력 
 
2
lea ebx, [eax + 4*eax]
lea ecx, [eax + 8*ebx]
 
입력
 
2
 
출력 
 
1
lea ebx, [eax + eax]
 
입력 
 
4
 
출력 
 
1
lea ebx, [4*eax]

채점

데이터 중 30%는 N ≤ 10
출처:koi4u 2011 모의고사 4 번

[질/답] [제출 현황] [푼 후(0)]
[ 채 점 ] [홈으로]  [뒤 로]