-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
85번 수식 만들기 코드가 time limit이 발생합니다.
22.03.16 01:33 작성 조회수 220
0
85번을 풀면서 채점프로그램에서 1번은 success, 나머지 4개는 time_limit이 발생했고, 입출력 결과는 수동으로 해봤을때 잘 나왔습니다. 다음 코드에서 왜 time_limit이 발생한 건가요?
추가로, time_limit이 발생할지 여부를 판단하는 방법이 있을까요?
#include<bits/stdc++.h>
using namespace std;
int n, op[5], res_max=-2147000000, res_min=2147000000;
vector<int> numbers(11);
void DFS(int L, int sum) {
int i, j;
if(L > n-1) {
if(res_max < sum) res_max = sum;
if(res_min > sum) res_min = sum;
}
else {
for(i=0; i<n-1; i++) { //연산자 개수
for(j=1; j<=4; j++) {
if(op[j] > 0) {
op[j]--;
if(j==1) DFS(L+1, sum+numbers[L+1]);
else if(j==2) DFS(L+1, sum-numbers[L+1]);
else if(j==3) DFS(L+1, sum*numbers[L+1]);
else if(j==4) DFS(L+1, sum/numbers[L+1]);
op[j]++;
}
}
}
}
}
int main() {
ios_base::sync_with_stdio(false);
freopen("input.txt", "rt", stdin);
int i;
cin>>n;
for(i=1; i<=n; i++) {
cin>>numbers[i];
}
for(i=1; i<=4; i++) {
cin>>op[i];
}
DFS(1, numbers[1]);
cout<<res_max<<"\n"<<res_min;
return 0;
}
답변을 작성해보세요.
답변 1