Scroll indicator done
728x90

https://www.acmicpc.net/problem/14888

 


#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
int n, num[100], oper[4];
int maxNum = INT_MIN;
int minNum = INT_MAX;

void f(int c, int v) {
	if (c == n) {
		minNum = min(minNum, v);
		maxNum = max(maxNum, v);
	}
	else {
		for (int i = 0; i < 4; i++) {
			if (oper[i] == 0) continue;

			oper[i]--;  // 선택
			if (i == 0) f(c + 1, v + num[c]);
			else if (i == 1) f(c + 1, v - num[c]);
			else if (i == 2) f(c + 1, v * num[c]);
			else if (i == 3) f(c + 1, v / num[c]);
			oper[i]++;  // 복원
		}
	}
}

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> n;
	for (int i = 0; i < n; i++)  cin >> num[i]; 
	for (int i = 0; i < 4; i++)  cin >> oper[i]; 
	f(1, num[0]);
	cout << maxNum << '\n';
	cout << minNum << '\n';
}
728x90

'BAEKJOON > C++' 카테고리의 다른 글

[B21608][상어 초등학교][C++]  (0) 2023.01.20
[B14889][스타트와 링크][C++]  (0) 2023.01.05
[B11286][절댓값 힙][C++]  (0) 2021.10.27
[B7569][토마토][C++]  (0) 2021.08.17
[B6064][카잉 달력][C++]  (0) 2021.07.27