반응형
https://www.acmicpc.net/problem/14888
#include <bits/stdc++.h>
using namespace std;
int n, arr[12], op[4], max_ans = INT_MIN, min_ans = INT_MAX;
void DFS(int x, int res) {
if (x == n - 1) {
max_ans = max(max_ans,res);
min_ans = min(min_ans,res);
}
for (int i = 0; i < 4; i++) {
if (op[i] > 0) {
op[i]--;
if (i == 0) {
DFS(x + 1, res + arr[x + 1]);
}
else if (i == 1) {
DFS(x + 1, res - arr[x + 1]);
}
else if (i == 2) {
DFS(x + 1, res * arr[x + 1]);
}
else if (i == 3) {
DFS(x + 1, res / arr[x + 1]);
}
op[i]++;
}
}
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
for (int i = 0; i < 4; i++) {
cin >> op[i];
}
DFS(0, arr[0]);
cout << max_ans << '\n';
cout << min_ans << '\n';
return 0;
}
반응형
'Algorithm > problem' 카테고리의 다른 글
백준 14890번 : 경사로 C++ (0) | 2022.02.09 |
---|---|
백준 11724번 : 연결 요소의 개수 Union&Find , BFS C++ (0) | 2022.02.09 |
백준 16235번 : 나무 재테크 시간 초과 해결 C++ (0) | 2022.02.08 |
백준 17140번 : 이차원 배열과 연산 - DFS, 시뮬레이션 C++ (0) | 2022.02.08 |
백준 14053번: 로봇 청소기 - 시뮬레이션 문제 C++ (0) | 2022.02.08 |