티스토리 뷰
https://www.acmicpc.net/problem/14888
숫자 사이에 들어갈 수 있는 연산자의 모든 경우의 수를 넣어본다.
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 26 27 28 29 30 31 32 33 34 35 36 37 38 | #include <cstdio> #include <vector> #include <algorithm> #include <climits> using namespace std; int n,a[11],t,MAX=INT_MIN,MIN=INT_MAX; vector<int> op; // 0:덧셈 1:뺄셈 2:곱셈 3:나눗셈 int main() { scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); for(int i=0;i<4;i++) { scanf("%d",&t); while(t--) op.push_back(i); } do { int sum=a[0]; for(int i=0;i<n-1;i++) { if(op[i]==0) sum+=a[i+1]; else if(op[i]==1) sum-=a[i+1]; else if(op[i]==2) sum*=a[i+1]; else if(op[i]==3) sum/=a[i+1]; } MAX=max(MAX,sum); MIN=min(MIN,sum); } while(next_permutation(op.begin(),op.end())); printf("%d\n%d\n",MAX,MIN); return 0; } | cs |
'Algorithm > BOJ' 카테고리의 다른 글
14890 경사로 (0) | 2018.04.09 |
---|---|
14889 스타트와 링크 (0) | 2018.04.09 |
14503 로봇 청소기 (0) | 2018.04.09 |
14502 연구소 (0) | 2018.04.09 |
14501 퇴사 (0) | 2018.04.06 |