#include #include #include #include using namespace std; int main() { int N; cin >> N; vector R(N); for (int i = 0; i < N; ++i) { cin >> R[i]; } map> pre; int M = 0; for (int r : R) M += r; M += 5; pre[0].set(M); for (int i = 0; i < N; ++i) { map> dp; for (auto& [k, v] : pre) { dp[k] |= v; if (k == 1) { if (v[M + R[i]]) { cout << 0 << endl; return 0; } } if (k == -1) { if (v[M - R[i]]) { cout << 0 << endl; return 0; } } dp[k - 1] |= v >> R[i]; dp[k + 1] |= v << R[i]; } swap(dp, pre); } for (int i = 1; i < M; ++i) { if (pre[0][M + i]) { cout << i << endl; return 0; } } return 0; }