#include using namespace std; int main() { int N, LvMax = 1; cin >> N; vector D(N); for (int &i : D) { cin >> i; if (i < 0) LvMax++; } vector DP((1 << N), vector(N + 1)); DP[0][1] = 100; for (int i = 0; i < (1 << N); i++) { for (int j = 0; j < N; j++) { for (int k = 1; k <= N; k++) { if ((i / (1 << j)) % 2 == 1 || DP[i][k] == 0) continue; if (D[j] < 0) DP[i + (1 << j)][k + 1] = max({0, DP[i][k] + D[j], DP[i + (1 << j)][k + 1]}); else DP[i + (1 << j)][k] = max(DP[i + (1 << j)][k], min(k * 100, DP[i][k] + D[j])); } } } cout << DP[(1 << N) - 1][LvMax] << endl; }