#include #include #include #include #include #include #include #include #include using namespace std; void pvec(vector > &dp){ for(int i=0; i &D, vector > &dp, int &N, int state, int MAX_HP){ if(dp[state][MAX_HP] >= 0) return dp[state][MAX_HP]; //前の相手 for(int j=0; j> N; vector D(N); int max_HP=1; for(int i=0; i> D[i]; if(D[i] < 0) max_HP++; } vector > dp(1<(max_HP+1, -1)); dp[0][1] = 100; int ans = 0; ans = max( ans, dfs(D,dp,N, (1<