시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 256 MB | 666 | 255 | 209 | 41.223% |
승주는 과제로 계산기를 만들고 있습니다.
계산기는 아직 미완성이므로 기능이 많지 않습니다.
계산기는 하나의 정수 X를 가지며, 총 4개의 버튼이 있습니다. 버튼의 기능은 아래와 같습니다.
[+]
: X에 2를 더합니다.[-]
: X에서 2를 뺍니다.[*]
: X에 2를 곱합니다.[/]
: X를 2로 나눕니다. (나머지는 버립니다.)버튼을 눌렀을 때 X가 음수가 되거나 263-1 을 초과하는 경우 계산기가 폭발합니다.
승주는 계산기가 잘 작동하는지 테스트하고 싶습니다.
초기에 X가 0일 때, 정수 N이 주어지면 버튼을 잘 눌러 계산기를 폭발시키지 않고 X가 N이 되도록 해주세요.
첫 번째 줄에 정수 N (1 ≤ N ≤ 1013) 이 주어집니다.
첫 번째 줄에 버튼을 누른 횟수 K (0 ≤ K ≤ 99) 를 출력합니다. 누른 횟수를 최소화 하지 않아도 됩니다. 단, 누른 횟수가 99번을 넘으면 안됩니다.
만약 99번 안에 N을 만드는 방법이 존재하지 않는다면 첫 번째 줄에 "-1
" 하나만 출력하고 더 이상 아무것도 출력하지 않아야 합니다.
두 번째 줄에는 버튼들을 누른 순서대로 공백을 사이에 두고 출력합니다. 버튼은 "[+]
", "[-]
", "[*]
", "[/]
" 중 하나이어야 합니다. 각 버튼의 기능은 지문에 서술되어 있습니다.
방법이 여러 가지인 경우 그 중 하나만 출력합니다.
14
5 [+] [*] [*] [*] [-]
버튼을 예제와 같이 누르면 X는 0 -> 2 -> 4 -> 8 -> 16 -> 14 순으로 변합니다.
1
4 [+] [*] [-] [/]
X가 계산 과정에서 32bit 정수형의 범위를 초과할 수 있음에 주의하세요.
C/C++의 경우 long long 타입, Java의 경우 long 타입을 사용하는 것을 권장합니다.
University > 경북대학교 > 2019 Goricon B번