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

2017. 11. 27. 23:32알고리즘/백준

반응형







소스코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
using namespace std;
 
int n, num[101], cal[4];
long long Max=-1000000000,Min=1000000000;
 
void ret(int a, int b, int c, int d,int depth, long long sum) {
    if (depth == n-1) {
        if (Max < sum) { Max = sum; }
        if (Min > sum) { Min = sum; }
    }
    if (a > 0) { ret(a - 1, b, c, d, depth + 1, sum + num[depth + 1]); }
    if (b > 0) { ret(a, b-1, c, d, depth + 1, sum - num[depth + 1]); }
    if (c > 0) { ret(a, b, c-1, d, depth + 1, sum * num[depth + 1]); }
    if (d>0) { ret(a, b, c, d-1, depth + 1, sum / num[depth + 1]); }
}
 
int main() {
    cin >> n;
    for (int i = 0; i < n; i++) { cin >> num[i]; }
    for (int i = 0; i < 4; i++) { cin >> cal[i]; }
    ret(cal[0], cal[1], cal[2], cal[3],0,num[0]);
    cout << Max << '\n' << Min << '\n';
    return 0;
}
cs


반응형

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

[백준 7568번] 덩치  (0) 2017.12.12
[백준 2231번] 분해합  (0) 2017.12.12
[백준 3020번] 개똥벌레  (0) 2017.10.18
[백준 3079번] 입국심사  (0) 2017.10.18
[백준 13305번] 주유소  (0) 2017.10.18