2025 만들기
시간 제한1초메모리 제한1024 MB
1부터 N까지의 수로 시작해 두 수를 골라 +, -, * 연산을 반복했을 때 마지막에 2025만 남길 수 있는지 판정하고, 가능하면 연산 순서를 출력한다.
문제
부터 까지의 개의 정수로 이루어진 배열 가 주어질 때 다음 가지 연산 중 원하는 연산을 골라 시행하는 것을 번 진행한다.
- 배열의 두 원소 , 를 제거하고 를 삽입한다.
- 배열의 두 원소 , 를 제거하고 를 삽입한다.
- 배열의 두 원소 , 를 제거하고 를 삽입한다.
연산을 번 시행한 뒤 마지막으로 남은 수가 일 수 있는지와 가능한 경우 구성 방법까지 구해보자. 단, 계산 과정에서 계산 결과의 절댓값은 를 넘으면 안 된다.
입력
첫 번째 줄에 배열의 길이 이 주어진다.
출력
연산을 번 시행한 뒤 마지막으로 남은 수가 일 수 있다면, 첫째 줄에 YES를 출력하고, 불가능하다면 NO를 출력한다.
마지막으로 남은 수가 일 수 있는 경우, 이후 개의 줄에 걸쳐 마지막으로 남은 수가 가 되도록 시행할 연산을 순서대로 출력한다. 출력 형식은 구체적으로 다음과 같다.
- 각 줄에는 "
<num1> <op> <num2>" 의 형식으로 시행한 연산의 정보를 출력한다. <num1>과<num2>는 연산을 시행하기 이전 배열에 남아있는 서로 다른 두 원소이다.<op>는+,-,*의 세 가지 문자 중 하나이다. 각각 1번, 2번, 3번 연산의 기호를 의미한다.<num1>과<num2>가 음이 아닌 정수인 경우, 정수 앞에 부호를 붙여서 출력하면 안 된다.- 연산을 수행했을 때 나온 계산 결과의 절댓값은 이하여야 한다.