문제 :
https://www.acmicpc.net/problem/14888
코드 :
#include <iostream>
#include <vector>
#include <algorithm>
#include <limits>
using namespace std;
int main()
{
int n;
cin >> n;
//숫자 입력
int a[100] = { 0 };
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
//기호 갯수입력 +,-,x,/ 순
int check[4] = { 1,2,3,4 };
int mon[100] = { 0 };
int count;
vector<int> num;
int ch = 1;
for (int i = 0; i < 4; i++)
{
cin >> count;
for (int c = 0; c < count; c++)
{
num.push_back(ch);
}
ch++;
}
int min = INT32_MAX;
int max = INT32_MIN;
do
{
int total = a[0];
for (int i = 0; i < n - 1; i++)
{
if (num[i] == 1)
{
total += a[i + 1];
}
else if (num[i] == 2)
{
total -= a[i + 1];
}
else if (num[i] == 3)
{
total *= a[i + 1];
}
else if (num[i] == 4)
{
if (a[i + 1] < 0)
{
total /= (-a[i + 1]);
total *= -1;
}
else
{
//0일때는??? - acmicpc의 테스트 케이스는 통과, 별도의 지시없음.
total /= a[i + 1];
}
}
}
if (min > total)
min = total;
if (max < total)
max = total;
} while (next_permutation(num.begin(), num.end()));
cout << max << "\n" << min;
return 0;
}
'algorithm > ACMICPC' 카테고리의 다른 글
암호 만들기 -1759 (0) | 2019.12.03 |
---|---|
연산자 끼워넣기 (2) - 15658 (0) | 2019.12.03 |
로또 - 6603 (0) | 2019.11.25 |
외판원 순회2 - 10971 (0) | 2019.11.23 |
테트로미노 - 14500 (0) | 2019.11.19 |
댓글