#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define INF 100000000 #define INF_INT_MAX 2147483647 #define INF_LL_MAX 9223372036854775807 #define EPS 1e-10 #define Pi acos(-1) #define LL long long #define ULL unsigned long long using namespace std; #define MAX_N 16 int N; int M[MAX_N]; int memo[1 << MAX_N]; void Input(){ cin >> N; for (int i = 0; i < N; i++){ cin >> M[i]; } } int Solve(int S){ if (S == (1 << N) - 1) return 0; if (memo[S]) return memo[S]; int Sub = 0; for (int i = 0; i < N; i++){ if ((S >> i) & 1) Sub += M[i]; } Sub %= 1000; int ret = INF; for (int i = 0; i < N; i++){ if (!((S >> i) & 1)){ ret = min(ret, max(0, M[i] - Sub) + Solve(S | (1 << i))); } } return memo[S] = ret; } int main(){ Input(); cout << Solve(0) << endl; return 0; }