알고리즘/SWEA
[SWEA 3752] 가능한 시험 점수
히더
2018. 7. 23. 14:40
출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWHPkqBqAEsDFAUn
#include <iostream>
#include <algorithm>
using
namespace
std;
#define MAX_N 101
#define MAX_M 10000
int
i, j, N, result;
int
a[MAX_N], check[MAX_M];
void
input()
{
cin >> N;
for
(i = 1;i <= N;i++) cin >> a[i];
for
(i = 0;i <= MAX_M;i++) check[i] = 0;
check[0] = 1;
}
void
cal()
{
result = 0;
for
(i = 1;i <= N;i++)
for
(j = MAX_M;j >= 0;j--)
{
if
(check[j] > 0 && j+a[i]<=10000)
{
check[j+a[i]] += 1;
}
}
for
(i = 0;i <= MAX_M;i++)
{
if
(check[i] >0) result += 1;
}
}
int
main()
{
int
T, t; t = 1;
cin >> T;
while
(T--)
{
input(); cal();
cout <<
"#"
<< t <<
" "
<< result << endl;
t++;
}
}