카운터가 있습니다. 다음과 같은 작은 장치입니다.
디스플레이가에서 0000로 바뀝니다 9999. 상단에 작은 푸시 버튼이있어 카운트가 1 씩 증가하고 오른쪽에 작은 노브가있어 카운터를 다시 0으로 재설정하는 것이 목적입니다.
이제 작은 손잡이의 특징은 뒤로 돌리면 다시 앞으로 돌리면 원하는 숫자를 늘릴 수 있다는 것입니다. 따라서 카운터 버튼이 10 번 눌러 카운터가 표시 0010되면 작은 딸깍 소리가 들릴 때까지 노브를 뒤로 돌린 다음 다시 앞으로 돌리면 바로 가십시오 0090.
그러나 노브는 숫자를 앞으로 밀 때마다 항상 같은 숫자의 모든 발생을 1 씩 증가시킵니다. 그래서 카운터 표시되면 6060, 당신은 단지이 증가 할 수 있습니다 7070하지 않도록, 6070또는 7060. 또한, 손잡이가 출시됩니다 9에의를 통해 0, 수행하지 않고 지금 0990에 진출하게됩니다 0000대신 1000나 1100.
카운터를 특정 숫자로 설정하는 가장 효율적인 방법을 알고 싶습니다. 당신의 임무는 그렇게하는 데 필요한 가장 짧은 버튼 누름과 노브 전진을 결정하는 프로그램이나 기능을 작성하는 것입니다.
귀하의 프로그램에서 입력으로 4 자리 숫자를 취할 것 0000으로 9999, 다음과 같은 형식의 일련의 단계를 반환 :
> 0001
C
> 0093
C12345678C12345678CCC
> 1000
C12345678C12345678C12345678C12345678C12345678C12345678C12345678C
> 9999
012345678
어디 C를 의미하고 숫자 "카운터 버튼을 눌러" D"의 모든 발생을 사전에 노브를 사용하여 0 ~ 9 스탠드에서 D1"을.
프로그램은 가능한 모든 4 자리 숫자 조합에 대해 유효한 단계 시퀀스를 생성해야하며 10,000 개의 모든 사례에 필요한 총 단계 수로 점수가 매겨집니다. 동점 인 경우 (최적의 알고리즘을 찾은 경우) 짧은 코드가 승리합니다.

0010으로0020그 경우에? 아니면 손잡이 만 뒤로 돌릴 수 있습니까? 또한 각 "D"는 노브의 "D"전진 횟수로 계산1234567됩니까 (예 : 노브를 1 회, 2 회, 3 회 등으로 돌리는 것을 의미합니까)? 아니면 각각의 개별 노브 회전을1234567의미 합니까 (예를 들어, 노브를 7 번 돌리는 것을 의미합니까?)