#include #include using namespace std; class range {private: struct I{int x;int operator*(){return x;}bool operator!=(I& lhs){return x d, dp; int main(void) { int n; scanf("%d", &n); d.resize(n); for(int i : range(n)) { scanf("%d", &d[i]); } dp.resize(1<>i & 1) && d[i] < 0) { maxHP += 100; } } for(int i : range(n)) { if(!(mask>>i & 1)) { continue; } int nmask = mask & ~(1< 0) { dp[mask] = max(dp[mask], min(maxHP, now)); } else { dp[mask] = max(dp[mask], max(0, now)); } } } int res = dp[(1<