- ์ด ๋ฌธ์ ๋ฅผ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค
๋ฌธ์
์์
ํ์ด
#include <iostream>
using namespace std;
int max_num=-100000000;
int min_num=1000000000;
int num[4];
void dfs(int arr[],int temp[],int idx,int len){
if(idx==len){
int sum=arr[0];
for(int i=1;i<len;i++){
if(temp[i]==0){
sum+=arr[i];
}
else if(temp[i]==1){
sum-=arr[i];
}
else if(temp[i]==2){
sum*=arr[i];
}
else{
if(sum<0){
sum*=-1;
sum/=arr[i];
sum*=-1;
}
else{
sum/=arr[i];
}
}
}
if(min_num>sum){min_num=sum;}
if(sum>max_num){max_num=sum;}
}
else{
for(int i=0;i<4;i++){
if(num[i]>0){
num[i]--;
temp[idx]=i;
dfs(arr,temp,idx+1,len);
num[i]++;
}
}
}
}
int main(){
int n;
cin>>n;
int arr[11];
for(int i=0;i<n;i++){
cin>>arr[i];
}
for(int i=0;i<4;i++){
cin>>num[i];
}
int temp[11];
dfs(arr,temp,1,n);
cout<<max_num<<endl;
cout<<min_num;
}
- ์ถ๊ฐ๋ก ๊ถ๊ธํ ์ ์ด๋ ์์ ํ ๋ถ๋ถ ์์ผ๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์.