알고리즘/BOJ
[BOJ 14888] 연산자 끼워넣기
히더
2018. 7. 15. 19:48
출처 : https://www.acmicpc.net/problem/14888
#include <bits/stdc++.h>
using namespace std;
int N, a[11], b[4], c[10], ans[2], t, r;
int main() {
ios::sync_with_stdio(false); cin.tie(0); cin >> N;
for (int i = 0; i < N; i++) cin >> a[i]; ans[0] = -1e9; ans[1] = 1e9;
for (int i = 0; i < 4; i++) { cin >> r; b[i] = r; while (r--) { c[t++] = i; } }
do {
r = a[0]; t = 1;
for (int i = 0; i < N-1; i++) {
if (c[i] == 0)r += a[t++];
if (c[i] == 1)r -= a[t++];
if (c[i] == 2)r *= a[t++];
if (c[i] == 3)r /= a[t++];
}
ans[0] = max(ans[0], r); ans[1] = min(ans[1], r);
}while(next_permutation(c, c + (N-1)));
cout << ans[0] << '\n' << ans[1];
return 0;
}