#include #include using namespace std; int pcount(int N) { int cnt = 0; for(int i = 0; i < 20; ++i) cnt += (N >> i & 1); return cnt; } int main(void) { int N; cin >> N; vector D(N); for(int i = 0; i < N; ++i) cin >> D[i]; sort(D.begin(), D.end()); int M = 0; for(int i = 0; i < N; ++i) if(D[i] < 0) M += 1; vector dp(1 << N, 0); dp[0] = 100; for(int bit = 0; bit < (1 << N); ++bit) if(dp[bit] != 0) { for(int i = 0; i < N; ++i) if((bit >> i & 1) == 0) { if(i < M) dp[bit ^ (1 << i)] = max(dp[bit ^ (1 << i)], dp[bit] + D[i]); else dp[bit ^ (1 << i)] = max(dp[bit ^ (1 << i)], min(dp[bit] + D[i], 100 * (pcount(bit & ((1 << M) - 1)) + 1))); } } int ans = 0; for(int bit = 0; bit < (1 << (N - M)); ++bit) ans = max(ans, dp[((bit + 1) << M) - 1]); cout << ans << "\n"; return 0; }