1. 문제
2. 소스코드
#include <iostream>
#include <vector>
using namespace std;
vector <bool> weigh(2600001, false);
int k;
void dfs(int a[], int p, int sum)
{
if (p > k)
{
if (sum < 0) return;
weigh[sum] = true;
}
else
{
dfs(a, p + 1, sum - a[p]);
dfs(a, p + 1, sum);
dfs(a, p + 1, sum + a[p]);
}
}
int main()
{
int x = 0;
cin >> k;
int v[15];
for (int i = 1; i <= k; i++)
{
cin >> v[i];
x += v[i];
}
dfs(v, 1, 0);
int y = 0;
for (int i = 1; i <= x; i++)
if (!weigh[i]) y++;
cout << y;
}
'알고리즘 > 구름' 카테고리의 다른 글
[ 구름 ] 정사각형의 개수 풀이 (0) | 2020.06.29 |
---|---|
[ 구름 / 그리디 ] 거스름돈 풀이 (0) | 2020.06.29 |
[ 구름 / 문자열 ] 거울 단어 풀이 (0) | 2020.06.29 |
[ 구름 / 문자열 ] 회문 풀이 (0) | 2020.06.29 |
[ 구름 / 단순 구현 ] 막대기 풀이 (0) | 2020.06.29 |