import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] w = new int[n + 1];
int sum = 0; // 所有砝码重量之和
for (int i = 1; i <= n; i++) {
w[i] = sc.nextInt();
sum += w[i];
}
sc.close();
int[] dp = new int[sum + 1]; // 表示重量i是否能称出
dp[0] = 1; // 0重量可以称出
int ans = 0;
for (int i = 1; i <= n; i++) {
for (int j = sum; j >= w[i]; j--) { // 天平一边放重量为w[i]的砝码,一边放重量为j的砝码
if (dp[j - w[i]] == 1 && dp[j] != 1) { // j-w[i]重量可以求出,同时j重量的砝码没被放过
dp[j] = 1;
ans++;
}
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j + w[i] <= sum; j++) { // 天平放重量j的那一边的砝码移到w[i]那一边上
if (dp[j + w[i]] == 1 && dp[j] != 1) { // j+w[i]重量可以求出,同时j重量的砝码没被放过
dp[j] = 1;
ans++;
}
}
}
System.out.println(ans);
}
}
每日一水~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~