연산자 끼워넣기


답안 제출

Points: 9
시간 제한: 2.0s
메모리 제한: 1G

문제 유형

\(N\)개의 수로 이루어진 수열 \(A_1,A_2,\ldots,A_N\)이 주어진다. 수와 수 사이에 넣을 수 있는 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)이다.

각 연산자를 사용할 수 있는 개수가 주어진다. 주어진 연산자를 모두 사용하여 수의 순서는 바꾸지 않고 하나의 식을 만들어야 한다.

식은 일반적인 연산자 우선순위를 사용하지 않고 왼쪽부터 순서대로 계산한다. 예를 들어 1+2×3은 \(1+(2\times3)=7\)이 아니라 \((1+2)\times3=9\)로 계산한다.

나눗셈은 정수 나눗셈을 사용하며, 나눗셈 결과의 소수 부분은 0에 가까운 방향으로 버린다. 따라서 \(7\div3=2\)이고 \(-7\div3=-2\)이다.

만들 수 있는 식의 결과 중 최댓값과 최솟값을 구하시오.

입력

첫째 줄에 수의 개수 \(N\)이 주어진다.

둘째 줄에 \(N\)개의 수 \(A_1,A_2,\ldots,A_N\)이 공백으로 구분되어 주어진다.

셋째 줄에 덧셈, 뺄셈, 곱셈, 나눗셈 연산자의 개수가 차례대로 주어진다. 네 수의 합은 \(N-1\)이다.

출력

첫째 줄에 만들 수 있는 식의 결과 중 최댓값을 출력한다.

둘째 줄에 만들 수 있는 식의 결과 중 최솟값을 출력한다.

제한 사항

  • \(2 \le N \le 11\)
  • \(1 \le A_i \le 100\)
  • 계산 과정과 최종 결과는 항상 \(-1,000,000,000\) 이상 \(1,000,000,000\) 이하이다.

예제 입력 1

2
5 6
0 0 1 0

예제 출력 1

30
30

예제 입력 2

3
3 4 5
1 0 1 0

예제 출력 2

35
17

예제 설명 2

덧셈을 먼저 사용하면 \((3+4)\times5=35\)이고, 곱셈을 먼저 사용하면 \(3\times4+5=17\)이다.

예제 입력 3

6
1 2 3 4 5 6
2 1 1 1

예제 출력 3

54
-24

코멘트

현재 작성된 코멘트가 없습니다.