#include <iostream>
#include <vector>
using namespace std;
// 연산자 끼워넣기 (2)
int N;
vector<int> v;
int Plus, Minus, Multiple, Divide;
int MaxValue=-1000000000, MinValue=1000000000;
void BruteForce(int p, int mi, int mul, int d, int sum, int idx) {
if(idx == N) {
if(sum < MinValue) { MinValue = sum; }
if(sum > MaxValue) { MaxValue = sum; }
return;
}
if(p < Plus) BruteForce(p+1, mi, mul, d, sum+v[idx], idx+1);
if(mi < Minus) BruteForce(p, mi+1, mul, d, sum-v[idx], idx+1);
if(mul < Multiple) BruteForce(p, mi, mul+1, d, sum*v[idx], idx+1);
if(d < Divide) BruteForce(p, mi, mul, d+1, sum/v[idx], idx+1);
}
int main() {
ios::sync_with_stdio(0);
cin >> N;
int n;
for(int i=0; i<N; i++) {
cin >> n;
v.push_back(n);
}
cin >> Plus >> Minus >> Multiple >> Divide;
BruteForce(0, 0, 0, 0, v[0], 1);
cout << MaxValue << '\n';
cout << MinValue << '\n';
return 0;
}
규칙이 있을 것만 같아서 마냥 삽질로 코드를 짜봤는데 역시나 아니었고 결국 bruteforce 함수를 재귀로 호출해 해결