/*
算法训练 最大体积
问题描述
每个物品有一定的体积(废话),不同的物品组合,装入背包会战用一定的总体积。假如每个物品有无限件可用,那么有些体积是永远也装不出来的。为了尽量装满背包,附中的OIER想要研究一下物品不能装出的最大体积。题目保证有解,如果是有限解,保证不超过2,000,000,000
如果是无限解,则输出0
输入格式
第一行一个整数n(n<=10),表示物品的件数
第2行到N+1行: 每件物品的体积(1<= <=500)
输出格式
一个整数ans,表示不能用这些物品得到的最大体积。
样例输入
3
10
样例输出
*/
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean dp[] = new boolean[65535 + 1000];
int n = sc.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
dp[a[i]] = true;
}
sc.close();
for (int index = 0; index <= 65535; index++) {
if (dp[index]) {
for (int i = 0; i < n; i++) {
dp[index + a[i]] = true;
}
}
}
int index = 0;
for (int i = 65535; i >= 0; i--) {
if (!dp[i]) {
index = i;
break;
}
}
// 如果从末尾开始超过五百个解则有无穷个解
boolean flag = false;
for (int i = 65535; i >= 65535 - 500; i--) {
if (dp[i]) {
flag = true;
break;
}
}
if (flag)
System.out.println(index);
else
System.out.println(0);
}
}