양 복제
시간 제한1초메모리 제한128 MB
각 기계의 양이 정확히 목표 용량에 도달하도록 소수를 입력하고 CLONE 명령으로 배수를 늘리는 과정을, 한 번에 최대 M개까지 지정할 수 있는 제약 아래 최소 명령 수로 구성하는 문제입니다.
문제
상근이는 여러 대의 복제 기계를 이용해 양을 늘리려고 한다. 처음에 각 기계에는 양이 1마리씩 들어 있다.
각 복제 기계에는 키보드가 있으며, 소수 p를 입력할 수 있다. 어떤 기계 안에 현재 K마리의 양이 있고, 그 기계에 p가 입력된 상태에서 복제 버튼을 누르면 그 기계 안의 양은 p*K마리가 된다.
각 기계에는 최대 용량이 있어서 그 수를 넘는 양은 넣을 수 없다. 상근이는 각 기계가 주어진 최대 용량에 정확히 도달하도록 명령을 내리고 싶다. 복제 중간에 양을 꺼낼 수 없다.
상근이는 각 기계 앞에 조수 한 명씩을 세우고, 다음 두 종류의 명령을 모두에게 외친다.
ENTER p: 모든 조수에게 자기 기계에 소수p를 입력하라고 지시한다.CLONE a1, a2, ..., ak: 기계a1, a2, ..., ak앞의 조수에게 복제 버튼을 누르라고 지시한다. 한 명이 같은 명령에서 두 번 버튼을 누르지 않도록 번호들은 모두 서로 달라야 한다. 또한 한 번의CLONE명령에는 최대M개의 번호만 말할 수 있다.
필요한 명령 수가 최소가 되도록, 모든 기계의 양을 최대한 많이 만드는 명령 순서를 출력하라. 가능한 최소 명령 순서가 여러 가지라면 아무거나 출력해도 된다.
입력
첫째 줄에 복제 기계의 수 N이 주어진다. (1 <= N <= 50)
둘째 줄에는 각 기계의 최대 용량이 주어진다. 각 용량은 1,000,000,000보다 작은 자연수이다.
셋째 줄에는 한 번의 CLONE 명령에서 말할 수 있는 번호의 최대 개수 M이 주어진다. (1 <= M <= N)
출력
한 줄에 하나씩 명령을 출력한다. 출력한 명령 수는 최소여야 하며, 조건을 만족하는 최소 명령 순서가 여러 가지인 경우 아무거나 출력해도 된다.