서의 공간

[백준] 14888_연산자 끼워넣기 본문

Algorithm/백준

[백준] 14888_연산자 끼워넣기

홍서의 2021. 2. 7. 02:17

[문제]: 14888번: 연산자 끼워넣기 (acmicpc.net)

 

#include <iostream>
#include <limits>
using namespace std;

int n;
int minr = numeric_limits<int>::max();
int maxr = numeric_limits<int>::min();
int arr[12];
int oper[4];

void solution(int k, int result)
{
	if (k == n - 1) {
		if (minr > result) minr = result;
		if (maxr < result) maxr = result;
		return;
	}

	if(oper[0] > 0) {
		--oper[0];
		solution(k + 1, result + arr[k + 1]);
		++oper[0];
	}
	if(oper[1] > 0) {
		--oper[1];
		solution(k + 1, result - arr[k + 1]);
		++oper[1];
	}
	if(oper[2] > 0){
		--oper[2];
		solution(k + 1, result * arr[k + 1]);
		++oper[2];
	}
	if (oper[3] > 0) {
		--oper[3];
		solution(k + 1, result / arr[k + 1]);
		++oper[3];
	}
}

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	cin >> n;
	for (int i = 0; i < n; ++i)
		cin >> arr[i];
	for (int i = 0; i < 4; ++i)
		cin >> oper[i];
        
	solution(0, arr[0]);
	cout << maxr << '\n' << minr << '\n';
	return 0;
}

 

'Algorithm > 백준' 카테고리의 다른 글

[백준] 15740_A+B -9  (0) 2021.02.09
[백준] 14889_스타트와 링크  (0) 2021.02.07
[백준] 15666_N과 M (12)  (0) 2021.02.06
[백준] 15665_N과 M (11)  (0) 2021.02.06
[백준] 15664_N과 M (10)  (0) 2021.02.06
Comments