작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
403
0
#include <iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<queue>
#include<numeric>
#include<map>
#include<cstring>
using namespace std;
typedef long long ll;
int N;
ll arr[104][10004];
int num[104];
int Size;
ll go(int idx, int cur) {
if (cur > 20 || cur < 0) {
return 0;
}
// 기저사례
if (idx == N - 1) {
if (cur == num[idx]) {
return 1;
}
return 0;
}
ll& ret = arr[idx][cur];
if (ret != 0) {
return ret;
}
ret += go(idx + 1, num[idx] + cur);
ret += go(idx + 1, cur - num[idx]);
return ret;
}
int main() {
cin >> N;
for (int i = 0; i < N; i++) {
cin >> num[i];
}
cout << go(0, 0);
return 0;
}
해당하는 코드에 대한 반례나 틀린점이 있을까요??
답변 1
0
안녕하세요 0508님 ㅎㅎ
들여쓰기 없이 질문주시면 제가 디버깅하기가 힘듭니다.
0주차 - 질문하는법 참고해서 질문 부탁드립니다. 여기 대댓으로 남겨주시면 됩니다.
감사합니다.