#include <vector> #include <list> #include <map> #include <set> #include <deque> #include <stack> #include <bitset> #include <algorithm> #include <functional> #include <numeric> #include <utility> #include <sstream> #include <iostream> #include <iomanip> #include <cstdio> #include <cmath> #include <cstdlib> #include <cctype> #include <string> #include <cstring> #include <ctime> #include <fstream> #include <queue> #include <complex> #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; }